示例#1
0
int main(int argc, char *argv[])
{
	MyObserver my1, my3;
	MyObserver2 my2;
	Subject sub;
	sub.Attach(&my1);
	sub.Attach(&my2);
	sub.Attach(&my3);

	sub.Detach(&my3);
	sub.Detach(&my2);

	sub.Notify();
	return 0;
}
示例#2
0
文件: main.cpp 项目: gexiannan1/tmp
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;
}
示例#3
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;
}