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.");
    }
    }
  • 相关阅读:
    node之body-parser的使用
    node解决跨域问题
    node之post提交上传
    HDU 6397(容斥原理)
    HDU 3374(最小最大表示法+KMP)
    HDU 6396(优先队列+思维)
    HDU 6395(矩阵快速幂)
    HDU 6370(并查集)
    HDU 6356(线段树)
    HDU 6354(计算几何)
  • 原文地址:https://www.cnblogs.com/BinaryBoy/p/2312945.html
Copyright © 2011-2022 走看看