国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

用最簡單的例子理解觀察者模式(Observer Pattern)

2019-11-17 01:44:38
字體:
來源:轉載
供稿:網友

用最簡單的例子理解觀察者模式(Observer Pattern)

假設有一個軟件公司,每當有新產品推出,就把信息通知到一些客戶。

把通知這個動作抽象成一個接口。

    public interface IService
    {
        void Notif();
    }

客戶如果想獲得通知,就需要實現以上的接口。這里的客戶被看作是觀察者。

    public class CustomerA : IService
    {       
        public void Notif()
        {
            Console.WriteLine("客戶A收到通知了~~");
        }
    }
    public class CustomerB : IService
    {
        public void Notif()
        {
            Console.WriteLine("客戶B收到通知了~~");
        }
    }

作為軟件公司來講,維護著一個客戶的集合,并提供注冊、取消注冊的方法,往這個集合添加或刪除客戶。每當有通知的時候,就遍歷客戶集合,讓IService執行通知。軟件公司可以看作是一個被觀察對象,或者說是發起動作的源頭。

    public class MyCompany
    {
        PRivate IList<IService> subscribers = new List<IService>();
        public void Subscribe(IService subscriber)
        {
            subscribers.Add(subscriber);
        }
        public void CancelSubscribe(IService subscriber)
        {
            subscribers.Remove(subscriber);
        }
        public void SendMsg()
        {
            foreach (IService service in subscribers)
            {
                service.Notif();
            }
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柳河县| 驻马店市| 弥渡县| 揭阳市| 闸北区| 凤山县| 通许县| 衡阳县| 锡林浩特市| 靖江市| 揭西县| 剑河县| 阿克陶县| 容城县| 台湾省| 金湖县| 嵊泗县| 和顺县| 图们市| 弋阳县| 萍乡市| 石城县| 山丹县| 宁津县| 湾仔区| 子洲县| 虎林市| 宜黄县| 天等县| 库尔勒市| 金昌市| 都江堰市| 海淀区| 凉城县| 顺平县| 福清市| 宁海县| 抚州市| 孝昌县| 香港 | 莫力|