123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- using ConsoleApp;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- //using static ConsoleApp1.guanchazhe_jieko;
- namespace ConsoleApp1
- {
- // 使用观察者模式的示例
- //public class Program
- //{
- // public static void Main(string[] args)
- // {
- // ISubject subject = new ConcreteSubject();
- // IObserver observer1 = new ConcreteObserver("Observer 1");
- // IObserver observer2 = new ConcreteObserver("Observer 2");
- // subject.RegisterObserver(observer1);
- // subject.RegisterObserver(observer2);
- // subject.SetState("New state");
- // subject.NotifyObservers();
- // }
- //}
- class Program
- {
- static void Main(string[] args)
- {
- // 创建主题对象
- Subject subject = new Subject();
- // 创建观察者对象
- ConcreteObserverA observerA = new ConcreteObserverA();
- ConcreteObserverB observerB = new ConcreteObserverB();
- // 注册观察者
- subject.RegisterObserver(observerA);
- subject.RegisterObserver(observerB);
- // 改变状态并通知观察者
- subject.SetState("New State 1");
- subject.SetState("New State 2");
- // 注销观察者(可选)
- subject.UnregisterObserver(observerA);
- // 再次改变状态,只通知剩余的观察者
- subject.SetState("New State 3");
- }
- }
- }
|