Program.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using ConsoleApp;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. //using static ConsoleApp1.guanchazhe_jieko;
  8. namespace ConsoleApp1
  9. {
  10. // 使用观察者模式的示例
  11. //public class Program
  12. //{
  13. // public static void Main(string[] args)
  14. // {
  15. // ISubject subject = new ConcreteSubject();
  16. // IObserver observer1 = new ConcreteObserver("Observer 1");
  17. // IObserver observer2 = new ConcreteObserver("Observer 2");
  18. // subject.RegisterObserver(observer1);
  19. // subject.RegisterObserver(observer2);
  20. // subject.SetState("New state");
  21. // subject.NotifyObservers();
  22. // }
  23. //}
  24. class Program
  25. {
  26. static void Main(string[] args)
  27. {
  28. // 创建主题对象
  29. Subject subject = new Subject();
  30. // 创建观察者对象
  31. ConcreteObserverA observerA = new ConcreteObserverA();
  32. ConcreteObserverB observerB = new ConcreteObserverB();
  33. // 注册观察者
  34. subject.RegisterObserver(observerA);
  35. subject.RegisterObserver(observerB);
  36. // 改变状态并通知观察者
  37. subject.SetState("New State 1");
  38. subject.SetState("New State 2");
  39. // 注销观察者(可选)
  40. subject.UnregisterObserver(observerA);
  41. // 再次改变状态,只通知剩余的观察者
  42. subject.SetState("New State 3");
  43. }
  44. }
  45. }