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.");
    }
    }
  • 相关阅读:
    洛谷 P2695 骑士的工作
    洛谷 P2839 畅通工程
    hdu_5742_It's All In The Mind
    hdu_5734_Acperience
    hdu_5738_Eureka(脑洞)
    hdu_5724_Chess(组合博弈)
    Codeforces Round #363 (Div. 2)D. Fix a Tree(并查集)
    Codeforces Round #363 (Div. 2) B. One Bomb (水题)
    Codeforces Round #363 (Div. 2) C. Vacations(DP)
    hdu_5723_Abandoned country(最小生成树)
  • 原文地址:https://www.cnblogs.com/BinaryBoy/p/2312945.html
Copyright © 2011-2022 走看看