国产探花免费观看_亚洲丰满少妇自慰呻吟_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();
            }
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克什克腾旗| 灯塔市| 台山市| 麻栗坡县| 光山县| 定日县| 安龙县| 西吉县| 南丰县| 建德市| 高雄市| 昭平县| 安泽县| 望谟县| 井陉县| 行唐县| 基隆市| 深圳市| 周宁县| 扬中市| 顺平县| 灵丘县| 自贡市| 芦溪县| 泽普县| 青阳县| 平南县| 搜索| 桐城市| 从化市| 渭源县| 育儿| 承德县| 吴江市| 崇义县| 东乌珠穆沁旗| 廊坊市| 九江县| 新郑市| 南木林县| 秭归县|