随笔分类 -  Design Pattern

设计模式
摘要:概述 将复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。适用场景 1)构建一个复杂对象,该复杂对象内部往往有许多部件(域)待初始化; 2)通过不同的生成器,就可生成相应的复杂对象;结构 1)Product:即产品类。该类很复杂,它包含的域待初始化; 2)Builder:抽象Builder类。它需要指定Product对象中各部件的生成方法:buildPart(); 3)ConcreteBuilder:Builder类的一个实现。它包含一个待初始化的Product对象,通过对其组件进行初始化,并提供一个成型对象的方法; 4)Director:建造者。它包含一个抽象... 阅读全文
posted @ 2013-05-18 16:59 Alex_Monkey 阅读(232) 评论(0) 推荐(0)
摘要:命令模式概述: 有三个对象:接收者,调用者,命令 场合:调用者需要让接收者执行其方法,将接收者和调用者解耦以下是个人的分析与理解: 调用者需要让接受者做某事,我们完全可以这样做:调用者中包含接受者的引用,并调用其方法。但是这样通过硬编码的实现方式,使得调用者与接受者之间是强耦合的。一个解决此问题的方法便是:命令模式。 建立命令模式的步骤: 1.建立一个命令Command接口,包含一个execute()方法。 2. 建立一个CommandImpl类,实现Command接口;包含一个Accepter接受者,覆写execute方法时,调用Accpter具体方法。 3. 建立... 阅读全文
posted @ 2013-04-16 22:36 Alex_Monkey 阅读(791) 评论(0) 推荐(0)
摘要:观察者模式 概述: 有两种对象:主题、观察者。 场合:主题的状态变化时,所有观察者都能够获知。 以下是个人的分析与理解: 观察者和主题存在一对多的对应关系,即一个主题可被过多个观察者关注。这里很容易就可以联想到主题应当可以管理一组观察者,并提供如下操作: 1. 注册某个观察者。 2. 删除某个观察者。 3. 状态变化时,通知所有观察者。 当主题通知观察者时,每个没观察者又应当有属于自己的“反应”,没错,使用多态即可!! 实现: Subject接口:1 package Observer;2 /*3 * Subject Interface4 */5 pub... 阅读全文
posted @ 2013-02-25 23:18 Alex_Monkey 阅读(193) 评论(0) 推荐(0)
摘要:策略模式 定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(虽然能理解意思,但真心记不住= =) 策略模式其实不难,顾名思义就是更改策略(策略接口下的子类)。首先是需要一个策略接口:Strategy,可以有n个子类实现此接口;其次是拥有此接口对象(注意是接口对象,而不是任意的子类)的客户端,那么客户端可以在运行时根据需要选择策略(子类)。 这样做的好处: 1. 维护方便:若策略经常改变,则更换策略便是;若出现新策略,那么实现一个继承策略接口的子类便可。其实这都可以归结为针对接口编程带来的好处。 2. 强大的组合:想象一下,若有n个策略... 阅读全文
posted @ 2012-10-23 14:27 Alex_Monkey 阅读(198) 评论(0) 推荐(0)