zoukankan      html  css  js  c++  java
  • 23种设计模式:观察者模式,第一次对观察者模式理解的这么通透。

    View Code
    class Program
    {
    static void Main(string[] args)
    {
    Subject sub1 = new Subject();
    Observer_1 ob1 = new Observer_1("NO.1");
    Observer_1 ob2 = new Observer_1("NO.2");
    sub1.AddObserver(ob1);
    sub1.AddObserver(ob2);
    sub1.Notify();
    Console.Read();
    }
    }

    class Subject
    {
    private List<IObserverable> observerContainer = new List<IObserverable>();

    public void AddObserver(IObserverable observer)
    {
    this.observerContainer.Add(observer);
    }

    public void RemoveObserver(IObserverable observer)
    {
    this.observerContainer.Remove(observer);
    }

    public void Notify()
    {
    foreach (IObserverable o in this.observerContainer)
    {
    Console.WriteLine(o.ObserverName);
    o.Update();
    }
    }

    }

    interface IObserverable
    {
    string ObserverName { get; }
    void Update();
    }

    class Observer_1 : IObserverable
    {
    private string _ObserverName;

    public Observer_1(string observerName)
    {
    this._ObserverName = observerName;
    }

    public string ObserverName
    {
    get { return _ObserverName; }
    }

    public void Update()
    {
    Console.WriteLine(this.ObserverName + ": Is updated.");
    }
    }

    class Observer_2 : IObserverable
    {
    private string _ObserverName;

    public Observer_2(string observerName)
    {
    this._ObserverName = observerName;
    }

    public string ObserverName
    {
    get { return _ObserverName; }
    }

    public void Update()
    {
    Console.WriteLine(this.ObserverName + ": Is updated.");
    }
    }
  • 相关阅读:
    [CentOS7] 安装sogou输入法
    [CentOS7] vncviewer与windows之间的复制粘贴
    linux solr7.2+tomcat8 详细部署整合
    linux solr 安装
    linux dubbo-admin-2.6.0 环境搭建
    linux tomcat安装
    linux jdk安装
    linux Nginx-1.10.2 安装部署教程
    linux技巧---创建应用快捷方式
    linux MySQL 5.7+keepalived 主备服务器自主切换
  • 原文地址:https://www.cnblogs.com/BinaryBoy/p/2312945.html
Copyright © 2011-2022 走看看