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

    依赖倒置原则

    依赖抽象,尽可能扩展而不是修改和破坏

     public abstract class Subject
        {
            IList<IAccountObserver> observerList = new List<IAccountObserver>();
    
            public void AddObserver( IAccountObserver observer )
            {
                observerList.Add( observer );
            }
            public void RemoveObserver( IAccountObserver observer )
            {
                observerList.Remove( observer );
            }
    
            public void Notify( UserAccountArgs args )
            {
                foreach( IAccountObserver observer in observerList )
                {
                    observer.Update( args );
                }
            }
        }    
     public class UserAccountArgs
        {
            public string PhoneNumber;
            public string Email;
        }
      public class BankAccount : Subject
        {
            public void WithDraw( UserAccountArgs args )
            {
                Notify( args );
            }
        }
      public interface IAccountObserver
        {
            void Update(UserAccountArgs args);
        }
     public class Mobile:IAccountObserver
        {
            public void Update( UserAccountArgs args )
            {
            }
        }
    public class Emailer:IAccountObserver
        {
            public void Update( UserAccountArgs args )
            {
            }
        }

    调用

     static void Main( string[] args )
            {
                Subject subject = new BankAccount();
                
                UserAccountArgs arg = new UserAccountArgs();
                arg.Email = "";
                arg.PhoneNumber = "";
    
                IAccountObserver observer1 = new Emailer();
                IAccountObserver observer2 = new Mobile();
    
                subject.AddObserver( observer1 );
                subject.AddObserver( observer2 );
    
                subject.Notify( arg );
            }

     为了原则而模式不是为了模式而代码

  • 相关阅读:
    通过Internet使用VSS2005
    基于角色的权限设计(一)
    WFF架构及技术
    WFF概述
    企业库:Cache
    权限设计(二)
    应用系统中的编码和编码规则
    希望更多的人也可以来应用wordpress程序
    说说我的一点小感受了
    思维决定命运
  • 原文地址:https://www.cnblogs.com/wangchuang/p/3021990.html
Copyright © 2011-2022 走看看