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(); } }
posted on 2013-04-11 14:02 HOT SUMMER 阅读(166) 评论(0) 编辑 收藏 举报