Example #1
0
        static void Main(string[] args)
        {
            //第一组
            ConcreteSubjectA   subjectA   = new ConcreteSubjectA(1);
            ConcreteObserverA1 observerA1 = new ConcreteObserverA1(subjectA);
            ConcreteObserverA2 observerA2 = new ConcreteObserverA2(subjectA);

            subjectA.attach(observerA1);
            subjectA.attach(observerA2);

            subjectA.notify();

            subjectA.SubjectState = 5;
            subjectA.notify();

            //第二组
            ConcreteSubjectB   subjectB   = new ConcreteSubjectB("观察对象二");
            ConcreteObserverB1 observerB1 = new ConcreteObserverB1(subjectB);
            ConcreteObserverB2 observerB2 = new ConcreteObserverB2(subjectB);

            subjectB.attach(observerB1);
            subjectB.attach(observerB2);
            subjectB.notify();

            subjectB.SubjectState = "状态变了";
            subjectB.notify();
        }
Example #2
0
    private void Start()
    {
        ConcreteSubjectA subjectA = new ConcreteSubjectA();

        IObserver observerA = new ConcreteObserverA(subjectA);
        IObserver observerB = new ConcreteObserverB(subjectA);

        subjectA.AddObserber(observerA);
        subjectA.AddObserber(observerB);

        //改变subjectA的状态
        subjectA.State = "状态A";
    }
Example #3
0
    private ConcreteSubjectA mSubject;     //创建自身的实例

    public ConcreteObserverA(ConcreteSubjectA subject)
    {
        mSubject = subject;//用来添加观察者
    }
Example #4
0
 public ConcreteObserverA1(ConcreteSubjectA concreteSubjectA)
 {
     ConcreteSubjectA = concreteSubjectA;
 }