欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

復制代碼 代碼如下:

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();
        }
    }
}

您可能感興趣的文章:

相關文章

  • asp.net實現(xiàn)遍歷Request的信息操作示例

    asp.net實現(xiàn)遍歷Request的信息操作示例

    這篇文章主要介紹了asp.net實現(xiàn)遍歷Request的信息操作,涉及asp.net針對請求信息相關操作打印操作技巧,需要的朋友可以參考下
    2020-03-03
  • C#7.0中新特性匯總

    C#7.0中新特性匯總

    C#7.0 增加了許多新功能,并專注于數(shù)據(jù)消費,簡化代碼和性能的改善。接下來通過本文給大家介紹C#7.0中新特性匯總,需要的朋友可以參考下
    2016-08-08
  • C#字符串自增自減算法詳解

    C#字符串自增自減算法詳解

    這篇文章主要為大家詳細介紹了C#字符串自增自減的算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C#向Word文檔中添加內容控件的方法示例

    C#向Word文檔中添加內容控件的方法示例

    這篇文章主要給大家介紹了C#向Word文檔中添加內容控件的方法,文中對各種不同控件的添加方法分別進行了介紹,如組合框、文本、圖片、日期選取器及下拉列表等內容控件,都給出了詳細的示例代碼,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • 淺談C#設計模式之代理模式

    淺談C#設計模式之代理模式

    這篇文章主要介紹了淺談C#設計模式之代理模式,需要的朋友可以參考下
    2014-12-12
  • C# 實現(xiàn)PPT 每一頁轉成圖片過程解析

    C# 實現(xiàn)PPT 每一頁轉成圖片過程解析

    這篇文章主要介紹了C# 實現(xiàn)PPT 每一頁轉成圖片過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • C# 中const,readonly,static的使用小結

    C# 中const,readonly,static的使用小結

    這篇文章主要介紹了C# 中使用const,readonly,static的示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • 詳解C# 利用反射根據(jù)類名創(chuàng)建類的實例對象

    詳解C# 利用反射根據(jù)類名創(chuàng)建類的實例對象

    這篇文章主要介紹了詳解C# 利用反射根據(jù)類名創(chuàng)建類的實例對象,“反射”其實就是利用程序集的元數(shù)據(jù)信息,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • c# 實現(xiàn)文件上傳下載功能的實例代碼

    c# 實現(xiàn)文件上傳下載功能的實例代碼

    這篇文章主要介紹了如何用c# 實現(xiàn)文件上傳下載功能,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#遞歸算法尋找數(shù)組中第K大的數(shù)

    C#遞歸算法尋找數(shù)組中第K大的數(shù)

    首先將向量V從中間位置分開,分成左和右,分好后,中間值的索引如果恰恰等于K,就找到了,否則如果中間元素索引大于K,則在左子表中繼續(xù)查找,忽略右子表,如果中間值索引小于K,則在右子表中繼續(xù)查找,如此循環(huán)往復。
    2016-06-06

最新評論