zoukankan      html  css  js  c++  java
  • 观察者模式

     public class Subject
        {
            List<Observer> observers = new List<Observer>();
    
            public void Attach(Observer o)
            {
                observers.Add(o);
            }
    
            public void Detach(Observer o)
            {
                observers.Remove(o);
            }
    
            public void NotifyObservers()
            {
                foreach (Observer observer in observers)
                {
                    observer.Update(this);
                }
            }
    
        }
    
        public class ConcreteSubject : Subject
        {
            private string _subjectstate;
    
            public string GetSubjectState()
            {
                return _subjectstate;
            }
    
            public void SetSubjectState(string substate)
            {
                this._subjectstate = substate;
                NotifyObservers();
            }
        }
    
        public interface Observer
        {
             void Update(Subject sub);
        }
        public class ConcreteObserver : Observer
        {
            private string ObserverState;
    
            void Observer.Update(Subject sub)
            {
                ObserverState = ((ConcreteSubject)sub).GetSubjectState();
            }
        }

    调用

     static void Main(string[] args)
            {
                ConcreteObserver observer1 = new ConcreteObserver();
                ConcreteObserver observer2 = new ConcreteObserver();
                ConcreteObserver observer3 = new ConcreteObserver();
    
                ConcreteSubject sub = new ConcreteSubject();
                sub.Attach(observer1);
                sub.Attach(observer2);
                sub.Attach(observer3);
    
                sub.SetSubjectState("123");
    
            }
  • 相关阅读:
    适配问题
    屏幕适配
    软键盘适配
    即时通讯
    缩减APK包大小
    基于RulesEngine的业务规则实现
    基于NXBRE规则引擎实现的柔性折扣策略
    SQL Server代码如何快速格式化
    SQL Server 跨库同步数据
    HTML+AngularJS+Groovy如何实现登录功能
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3466843.html
Copyright © 2011-2022 走看看