2012年5月19日

5.10 模板方法模式

摘要: 模式定义模板方法模式(Template Method Pattern),定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。模板方法模式是代码复用的一项基本的技术,在类库中尤其重要,它遵循“抽象类应当拥有尽可能多的行为,应当拥有尽可能少的数据”的重构原则。在JUNIT中我们写的测试类就是通过模版方法来调用的,先执行setUp(),然后是:测试方法,最后执行tearDawn();模式使用模版方法模式编程:1.设计抽象类,在抽象类中定义要执行的方法2.在模版方法中,加入抽象定义方法的执行步骤3.在实现类中具体实现UML类 阅读全文

posted @ 2012-05-19 22:27 随心浪子 阅读(131) 评论(0) 推荐(0) 编辑

3.6 原型模式

摘要: 模式定义:原型模式:通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例,被复制的实例就是我们所称的“原型”。UML类图:类图代码:浅拷贝:public class Thing implements Cloneable{ //定义一个私有变量 private ArrayList<String> arrayList = new ArrayList<String>(); @Override public Thing clone(){ Thing thing=null; try { thing = (Thing)sup... 阅读全文

posted @ 2012-05-19 22:03 随心浪子 阅读(151) 评论(0) 推荐(0) 编辑

3.5 单例模式

摘要: 单例模式定义:单例模式(也叫单件模式)是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)。UML类图:类图代码:主动式(不管有没有调用,都先实例化出来):public class Singleton { private static Singleton singleton = new Singleton(); private Singleton() {} public static Singleton getInstance(){ return singleton; }}被动式(第一... 阅读全文

posted @ 2012-05-19 21:09 随心浪子 阅读(170) 评论(0) 推荐(0) 编辑

3.4 建造者模式

摘要: 建造者模式是什么?建造者模式是将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。这里不禁会有疑问,将复杂对象的构建与其表示相分离,我们前面不是使用工厂方法模式可以实现了吗?可见,构造者模式不是为解决这个问题而生的。那它到底要解决什么问题呢?它是通过相同的构建过程创建不同的表示。也就是说,对象是创建出来的,但是返回的对象的属性是不同的。UML类图:类图代码:Productpublic interface Product { public void addPart(String part) ; public void showProduct();}Concret... 阅读全文

posted @ 2012-05-19 17:32 随心浪子 阅读(160) 评论(0) 推荐(0) 编辑

3.3 抽象工厂模式

摘要: 抽象工厂模式是什么?抽象工厂是应对产品族概念的。比如说,每个汽车公司可能要同时生产轿车,货车,客车,那么每一个工厂都要有创建轿车,货车和客车的方法。UML类图:类图代码:ProductApublic interface ProductA { public void operation1(); public void operation2();}ProductBpublic interface ProductB { public void operation1(); public void operation2();}ConcreateProductA1public cl... 阅读全文

posted @ 2012-05-19 00:29 随心浪子 阅读(195) 评论(2) 推荐(0) 编辑

3.2 工厂方法模式

摘要: 工厂方法模式是什么? 工厂方法模式是针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例。在同一等级结构中,支持增加任意产品。UML类图如下:注意:Factory不一定要用接口,也可以采用抽象类,反正能符合里氏替换原则就可以了,不要太注重形式。要注意的是怎么解决问题。类图代码:Productpublic interface Product { public void operation1(); public void operation2();}ConcreateProductApublic class ConcreateProductA implements ... 阅读全文

posted @ 2012-05-19 00:13 随心浪子 阅读(183) 评论(0) 推荐(0) 编辑

导航