摘要:Template Method Pattern模版方法:定义一个操作中算法的骨架,而将这些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 abstractclassAbstractClass{publicabstractvoidPrimitiveOperation1();publicabstractvoidPrimitiveOperation2();publicvoidTemplateMethod(){PrimitiveOperation1();PrimitiveOperation2();Console.WriteLine(""
阅读全文
摘要:Prototype Pattern原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 abstract class Prototype { private string id; // Constructor public Prototype(string id) { this.id = id; } // Property public string Id { get { return id; } } public abstract Prototype Clone(); } class ConcretePrototype1 : Prototype { // Constructo...
阅读全文
摘要:Factory Method Pattern工厂方法(Factory Method) 定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现‘开-闭 原则’,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。示例代码:///<summary>///运算类///</summary>classOperation{privatedouble_numberA=0;privatedouble_numberB=0;publicdoubleNumberA{
阅读全文
摘要:Proxy pattern代理模式(Proxy)为另一个对象提供一个替身或占位符以控制对这个对象的访问,简而言之就是用一个对象来代表另一个对象。 abstractclassSubject{publicabstractvoidRequest();}classRealSubject:Subject{publicoverridevoidRequest(){Console.WriteLine("真实的请求");}}classProxy:Subject{RealSubjectrealSubject;publicoverridevoidRequest(){if(realSubject=
阅读全文
摘要:Decorator Pattern装饰模式:装饰模式主要是解决了,我们以动态的,透明的形式为某个类型添加一个新的职责,客户程序可以不知道我们具体添加的功能职责,而客户程序只是根据对象提供的方法进行调用即可。而具体职责操作留给装饰对象去完成。abstractclassComponent{publicabstractvoidOperation();}classConcreteComponent:Component{publicoverridevoidOperation(){Console.WriteLine("具体对象的操作");}}abstractclassDecorator
阅读全文