Esempio n. 1
0
        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();
        }
Esempio n. 2
0
    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();
    }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        /// <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();
        }
Esempio n. 5
0
        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();
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        //观察者
        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();
        }