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.");
    }
    }
  • 相关阅读:
    桂林印象
    快变
    近期的事
    *C#中使用ref和out一点认识!*
    *在框架集页面放置TreeView控件时页面跳转的问题解决*
    *无法找到脚本库的问题*
    *Ajax.Net快速入门*
    *网页过期*
    *Prototype开发笔记*
    *正则表达式*
  • 原文地址:https://www.cnblogs.com/BinaryBoy/p/2312945.html
Copyright © 2011-2022 走看看