最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單的觀察者模式示例分享

 更新時間:2014年03月04日 09:36:03   作者:  
這篇文章主要介紹了簡單的觀察者模式示例,抽象層定義了觀察者模式,實現(xiàn)層是對抽象層的具體實現(xiàn),需要的朋友可以參考下

復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;

namespace Demo
{
    #region 抽象層,定義了觀察者模式
    /// <summary>
    /// (抽象)新聞
    /// </summary>
    public interface INews
    {
        void SubScribe(ISubscriber s);
        void UnSubScribe(ISubscriber s);
        void Publish(string newsTitle);   //在具體實現(xiàn)的過程中建立發(fā)布與訂閱的聯(lián)系
    }

    /// <summary>
    /// (抽象)訂閱者
    /// </summary>
    public interface ISubscriber
    {
        void Read(string newsTitle);
    }
    #endregion

    #region 實現(xiàn)層,是對抽象層的具體實現(xiàn)
    /// <summary>
    /// (具體)新聞
    /// </summary>
    public class ITNews : INews
    {
        private List<ISubscriber> readers = new List<ISubscriber>();

        public void SubScribe(ISubscriber s)
        {
            readers.Add(s);
        }

        public void UnSubScribe(ISubscriber s)
        {
            if (readers.Count >= 0)
            {
                readers.Remove(s);
            }
        }

        public void Publish(string newsTitle)
        {
            foreach (ISubscriber i in readers)
            {
                i.Read(newsTitle);          //<<<<<發(fā)布的時候訂閱>>>>>
            }
        }
    }

    /// <summary>
    /// (具體)訂閱者
    /// </summary>
    public class Subscriber : ISubscriber
    {
        private string subscriber = string.Empty;
        public Subscriber(string subscriber)
        {
            this.subscriber = subscriber;
        }

        public void Read(string newsTitle)
        {
            Console.WriteLine(string.Format("{0}閱讀了IT新聞\"{1}\"", subscriber, newsTitle));
        }
    }
    #endregion

    public class Pro
    {
        static void Main(string[] args)
        {
            ITNews news = new ITNews();
            Subscriber zs = new Subscriber("張三"),
                                 ls = new Subscriber("李四"),
                                 ww = new Subscriber("王五");

            news.SubScribe(zs);
            news.SubScribe(ls);
            news.SubScribe(ww);
            news.UnSubScribe(ls);  //張三取消訂閱

            news.Publish("2014年移動電商攻堅戰(zhàn):阿里巴巴如何破局?");
            news.Publish("余額寶還能重回高收益率嗎?");

            Console.WriteLine();
            Console.ReadKey();
        }
    }
}

您可能感興趣的文章:

相關(guān)文章

  • unity實現(xiàn)手機端搖桿控制人物移動

    unity實現(xiàn)手機端搖桿控制人物移動

    這篇文章主要為大家詳細介紹了unity實現(xiàn)手機端搖桿控制人物移動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#使用EPPlus封裝excel表格導(dǎo)入功能的問題

    c#使用EPPlus封裝excel表格導(dǎo)入功能的問題

    這篇文章主要介紹了c#使用EPPlus封裝excel表格導(dǎo)入功能的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 分享用于操作FTP的客戶端C#類

    分享用于操作FTP的客戶端C#類

    用.net自帶的FtpWebRequest做的ftp客戶端得程序,有一個功能實現(xiàn)起來會非??嚯y,就是移動文件和文件夾的功能。所以后來又找了一個類,用socket實現(xiàn)的,發(fā)現(xiàn)比用ftpWebRequest功能要強?;镜膄tp客戶端得命令都實現(xiàn)了。
    2015-05-05
  • asp.net中調(diào)用oracle存儲過程的方法

    asp.net中調(diào)用oracle存儲過程的方法

    存儲過程是在大型數(shù)據(jù)庫系統(tǒng)中,一組為了完成特定功能的SQL 語句集,存儲在數(shù)據(jù)庫中經(jīng)過第一次編譯后再次調(diào)用不需要再次編譯,用戶通過指定存儲過程的名字并給出參數(shù)來執(zhí)行它,下面給大家介紹下asp.net中調(diào)用oracle存儲過程的方法,需要的朋友可以參考下
    2015-08-08
  • C#正則表達式大全

    C#正則表達式大全

    本文詳細講解了C#正則表達式的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • c#中Empty()和DefalutIfEmpty()用法分析

    c#中Empty()和DefalutIfEmpty()用法分析

    這篇文章主要介紹了c#中Empty()和DefalutIfEmpty()用法,以實例形式分析了針對不同情況下Empty()和DefalutIfEmpty()用法區(qū)別,需要的朋友可以參考下
    2014-11-11
  • 在C#中添加I/O延時和持續(xù)時間的實現(xiàn)方法

    在C#中添加I/O延時和持續(xù)時間的實現(xiàn)方法

    這篇文章主要介紹了在C#中添加I/O延時和持續(xù)時間的實現(xiàn)方法,文中有相關(guān)的代碼示例供大家參考,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • c# 類型構(gòu)造器

    c# 類型構(gòu)造器

    CLR還支持類型構(gòu)造器,也稱為靜態(tài)構(gòu)造器。c#類型構(gòu)造器可應(yīng)用引用類型和值類型,永遠沒有參數(shù)
    2012-10-10
  • C#接口歸納總結(jié)實例詳解

    C#接口歸納總結(jié)實例詳解

    本篇文章通過實例代碼對接口做了詳解,需要的朋友可以參考下
    2017-04-04
  • 詳解C# 線程的掛起與喚醒

    詳解C# 線程的掛起與喚醒

    這篇文章主要介紹了詳解C# 線程的掛起與喚醒,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-05-05

最新評論

温泉县| 怀化市| 宁海县| 道孚县| 安陆市| 庆城县| 玛沁县| 乌拉特后旗| 来宾市| 四川省| 金山区| 吉安县| 颍上县| 咸阳市| 安吉县| 遂平县| 比如县| 两当县| 江北区| 嘉定区| 台前县| 集贤县| 石嘴山市| 鹰潭市| 丹阳市| 米林县| 尤溪县| 南充市| 玛曲县| 同仁县| 九江县| 双流县| 金平| 炉霍县| 汝州市| 汽车| 洛宁县| 台湾省| 卢湾区| 日土县| 美姑县|