zoukankan      html  css  js  c++  java
  • Mediator 中介者模式

    public abstract class Element
        {
            protected Mediator mediator;
    
            public Element( Mediator mediator )
            {
                this.mediator = mediator;
                this.mediator.AddElement( this );
            }
    
            public virtual void OnChange()
            {
                mediator.Notify();
            }
        }
    public abstract class Mediator
        {
            IList<Element> list;
    
            public abstract void Notify();
            public virtual void AddElement( Element element )
            {
                if( list == null )
                {
                    list.Add( element );
                }
            }
        }
    public class ClipBorad:Element
        {
            public ClipBorad( Mediator mediator )
                : base( mediator )
            {
            }
    
            public void Invoke()
            {
                OnChange();
            }
        }
      public class ConcreteMediator:Mediator
        {
            public override void Notify()
            {
            }
        }
    public class CutMenuItem:Element
        {
            public CutMenuItem( Mediator mediator )
                : base( mediator )
            {
            }
    
            public void Click()
            {
                mediator.Notify();
            }
        }
        public class TextArea:Element
        {
            public TextArea( Mediator mediator )
                : base( mediator )
            {
            }
    
            public void Process()
            {
                mediator.Notify();
            }
        }
     public class ToolBarButton:Element
        {
            public ToolBarButton( Mediator mediator )
                : base( mediator )
            {
            }
    
            public void Click()
            {
                OnChange();
            }
        }
  • 相关阅读:
    pip安装报错 解决办法
    django admin 支持时间更改
    fiddler抓包工具
    session token两种登陆方式
    面向对象内置方法
    linux 命令
    flask
    celery
    mac添加redis 环境变量
    Django请求流程图
  • 原文地址:https://www.cnblogs.com/wangchuang/p/3014389.html
Copyright © 2011-2022 走看看