Esempio n. 1
0
int main()
{
    Subject* p = new ConcreateSubject();
    Observer *p1 = new ConcreateObserver(p);
    Observer *p2 = new ConcreateObserver(p);//等价于Observer *p2 = new ConcreateObserver(); p->Attach(p2); 
    p->SetState(4);
    p->Notify();

    std::cout<<"-----------------------"<<std::endl;
    p->Detach(p1);
    p->SetState(10);
    p->Notify();

    delete p;
    return 0;
}
Esempio n. 2
0
int main()
{
	Observer *p1 = new ConcreateObserver;
	Observer *p2 = new ConcreateObserver;

	Subject* p = new ConcreateSubject;
	p->Attach(p1);
	p->Attach(p2);
	p->SetState(4);
	p->Notify();

	p->Detach(p1);
	p->SetState(10);
	p->Notify();

	delete p;

	system("pause");

	return 0;
}
Esempio n. 3
0
int main()
{
  Observer* p1 = new ConcreteObserverA();
  Observer* p2 = new ConcreteObserverB();
  Observer* p3 = new ConcreteObserverA();

  Subject* pSubject = new ConcreteSubjectA();
  pSubject->Attach(p1);
  pSubject->Attach(p2);

   pSubject->Attach(p3);
    pSubject->SetState("old");
    pSubject->Notify();

    pSubject->SetState("new");
    pSubject->Detach(p3);
     pSubject->Notify();
    cout << "-------------------------------------" << endl;
     Base *point=new Derived();
     point->print();
     return 0;
}