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; }
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; }
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; }
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; }