随笔分类 - 设计模式(design patterns)
设计模式心得
摘要:作用:假设我们有一个使用了八个对象的程序,由于需求变更,其中三个对象需要另外一个属性。读者可以为这三个对象创建一个派生类,在多数情况下,这是一个完全可以接受的方案。然而,如果这三个对象中的每个对象都要求有不同的属性,这就意味着要创建三个派生类。更进一步,如果其中一个类具有其他两个类中的属性,可能就要创建更复杂的类,这既容易造成混乱也没有必要————装饰者模式给我们提供了这样一个方法:改变单个对象的...
阅读全文
摘要:作用:使组件既可以是单个对象,也可以是对象的组合。比如:算术表达式包括操作数、操作符和另一个操作数。操作数可以是数字,也可以是另一个表达式。这样,2+3和(2+3)+(4*6)都是合法的表达式;再比如:常用的树控件,其对象可以是一个节点,也可以是一个叶子。对一棵树来说,对其添加节点还是添加叶子是一样的。 实现要点:ArrayList , 众所周知.net提供的ArrayList极大地方便了你组合对...
阅读全文
摘要:作用:创建新对象时不需要重新定义类,直接从原型类里拷贝创建新对象实现要点:克隆。(c#的克隆分为浅表拷贝和深度拷贝,详情参见msdn)UML: 代码:(注:这段代码来自TerryLee ,http://www.cnblogs.com/Terrylee/ ,觉得很好,顺便复习了索引器,就照搬了。) Code highlighting produced by Actipro CodeHighli...
阅读全文
摘要:一.简单工厂(Simple Factory) GOF没有把简单工厂作为设计模式之一列出。但是为了学习后面的两种工厂模式,还是先来了解一下简单工厂。 作用:专门由一个类来决定实例化哪个产品类实现要点:可能很多人平时都不知不觉地使用了简单工厂。简单工厂就是把决定实例化哪个类的方法放到一个单独的类(所谓的工厂类)里。UML: 代码: Code highlighting produced by Acti...
阅读全文
摘要:作用:保证一个类只能有一个实例。并提供一个访问它的全局访问点。属于创建型模式。实现要点:一.使用一个静态成员变量作为“全局”实例,这样就确保了唯一性 二.使用静态的成员函数instance()替代new来获取该类的实例,这样就提供了全局的访问点 三.构造函数设为private,使调用者不能用new来创建此类的实例代码:两种方法实现单件模式,一种是...
阅读全文

浙公网安备 33010602011771号