08 2012 档案
摘要:桥接模式:将对象部分与它的实现部分分离,使它们可以独立的变化。结构图: class Abstraction { protected Implementor implementor; public void SetImplementor(Implementor implementor) { this.implementor = implementor; } public virtual void Operation() { implementor.Operation(); } } class RefinedAbstraction : Abstraction { public override .
阅读全文
摘要:单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。结构图://单线程 class Singleton { private static Singleton instance; private Singleton() { } public static Singleton GetInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }//多线程 class Singleton2 { private static Singleton2 instance; privat
阅读全文
摘要:组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。需求中式体现部分与整体层次的结构时,统一地使用组合对象中的所有对象时,应该考虑使用组合模式。结构图:抽象对象: abstract class Component { protected string name; public Component(string name) { this.name = name; } public abstract void Add(Component c); public abstract void Remove(Component c); pub
阅读全文
摘要:备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在这个对象之外的地方保存这个状态,这样以后就可将该对象恢复到原来保存的状态了。结构图:Memento类:保存状态的容器 class Memento { public string State { get; set; } public Memento(string state) { this.State = state; } }Caretaker是保存Memento类: class Caretaker { public Memento Memento { get; set; } }Originator类就是需要保存状态的类: class
阅读全文
摘要:适配器模式:将一个类的接口转换成客户希望的另一个接口,Adapter使原本由于接口不兼容而不能一起工作的那些类可以一起工作。结构图:客户可以对接的接口类: class Target { public virtual void Request() { Console.WriteLine("普通请求!"); } }客户需要使用适配器才能使用的接口: class Adaptee { public void SpecialRequest() { Console.WriteLine("特殊请求!"); } }适配器的定义:继承与Target类 class Adap
阅读全文
摘要:状态模式:当一个对象的内在状态改变时,允许改变其行为。这个对象看起来像是改变了其类。主要解决是当控制一个对象状态装换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同的状态的一系列类中。可以把复杂的逻辑简化。状态模式的结构图:先定义一个抽象状态类: abstract class State { public abstract void Handle(Context context); }ConcreteStateA、 ConcreteStateB:继承State class ConcreteStateA : State { public override void Handle(Co
阅读全文
浙公网安备 33010602011771号