static void Main(string[] args) { Boss huhansan = new Boss(); StockObserver stockObserver = new StockObserver("魏关姹", huhansan); NBAObserver nbaObserver = new NBAObserver("易管查", huhansan); huhansan.Update += new EventHandler(stockObserver.CloseStockMarket); huhansan.Update += new EventHandler(nbaObserver.CloseNBADirectSeeding); huhansan.SubjectState = "我胡汉三回来了!"; huhansan.Notify(); }
void TestObserver() { Secretary newSecretary = new Secretary(); StockObserver stockGuy = new StockObserver("Stock Guy", newSecretary); NBAObserver nbaGuy = new NBAObserver("NBA Guy", newSecretary); newSecretary.Attach(stockGuy); newSecretary.Attach(nbaGuy); newSecretary.DeTach(stockGuy); newSecretary.Nofity(); }
public void TestObserver_Example() { Boss myBoss = new Boss(); StockObserver user1 = new StockObserver("leo", myBoss); NBAObserver user2 = new NBAObserver("ken", myBoss); myBoss.Update += new MyEventHandler(user1.CloseStockMarket); myBoss.Update += new MyEventHandler(user2.CloseNBADirectSeeding); myBoss.SubjectState = "I'm come back!!! "; myBoss.Notify(); }
/// <summary> /// 事件委托实现 /// </summary> static void TestDelegate() { Boss huhansan = new Boss(); StockObserver tongshi1 = new StockObserver("xiaohuang", huhansan); NBAObserver tongshi2 = new NBAObserver("xiaoming", huhansan); // 1.一个委托可以搭载多个方法,所有方法被依次唤起 // 2.委托对象所搭载的方法并不需要属于同一个类 huhansan.Update += new MYEventHandler(tongshi1.CloseStockmarket); huhansan.Update += new MYEventHandler(tongshi2.CloseNBADirectSeeding); huhansan.SubjectState = "come back"; huhansan.Notify(); }
static void Main(string[] args) { Boss boss = new Boss(); stockObserver Marry1 = new stockObserver("瑪莉", boss); NBAObserver Marry2 = new NBAObserver("強尼", boss); boss.Attach(Marry1); boss.Attach(Marry2); boss.Detach(Marry1); boss.SubjectState = ("老闆我回來啦"); boss.Notify(); Console.Read(); }
public void Test_Observer_BossExample() { Boss anguryBoss = new Boss(); StockObserver worker1 = new StockObserver("thkouob", anguryBoss); NBAObserver worker2 = new NBAObserver("zf", anguryBoss); ////anguryBoss.Attach(worker1); ////anguryBoss.Attach(worker2); ////anguryBoss.Detach(worker1); anguryBoss.Update += new MyEventHandler(worker1.Update); anguryBoss.Update += new MyEventHandler(worker2.Update); anguryBoss.SubjectState = "Boss is come back!"; anguryBoss.Notify(); }
public void NotifyTest() { //老板胡汉三 Boss boss = new Boss(); //看股票的同事 QQObserver tongshi1 = new QQObserver("王延领", boss); //看NBA的同事 NBAObserver tongshi2 = new NBAObserver("胡云峰", boss); boss.Update += new EventHandler(tongshi1.CloseQQMarket); boss.Update += new EventHandler(tongshi2.CloseNBADirectSeeding); //老板回来 boss.SubjectState = "我胡汉三回来了!"; //发出通知 boss.Notify(); }
//观察者 public static void testObserver() { //老板胡汉三 Boss huhansan = new Boss(); //看股票的同事 StockObserver tongshi1 = new StockObserver("魏关姹", huhansan); //看NBA的同事 NBAObserver tongshi2 = new NBAObserver("易管查", huhansan); huhansan.Update += new DesignPatten.BehaviorType.EventHandler(tongshi1.CloseStockMarket); huhansan.Update += new DesignPatten.BehaviorType.EventHandler(tongshi2.CloseNBADirectSeeding); //老板回来 huhansan.SubjectState = "我胡汉三回来了!"; //发出通知 huhansan.Notify(); Console.Read(); }