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