初识设计模式
clearriver
做一番一生引以为豪的事业;找一个一生荣辱与共的妻子;在有生之年报答帮助我的人;并且帮助有需要我帮助的人!
展开
-
设计模式—策略模式
今天阅读《Head First设计模式》中讲到的第一个设计模式:策略模式。策略模式定义了一个算法族,分别封装起来,让他们之间可以相互替换;此模式让算法的变化独立于客户。书中的例子是设计一个“鸭子模拟器”,用来模拟各种鸭子:橡皮鸭,绿头鸭,红头鸭……设计方案如下:将各种鸭子“共同的东西”(不变的部分)封装在一个鸭子类Duck,所有的鸭子都要继承这个类。此外将变化的部分提取出来,设计成接口原创 2009-05-12 11:23:00 · 651 阅读 · 0 评论 -
简单工厂,工厂方法和抽象工厂模式
1,简单工厂模式:将创建类实例的过程封装到工厂类的方法中。2,工厂方法:处了将创建类实例封装到一个工厂类外,还将类的实例化推迟到子类。用于当用户想得到某一种产品的类型时。比如,有一系列的飞机类,战斗机,运输机等,用户通过工厂可以得到某一个所需要的某个飞机类型,但是通过使用接口(抽象类),飞机类型的实例真正创建是在工厂类(接口)的子类(实现类)中完成的。这就是所谓的“实例化推迟到子类”。 pla原创 2009-06-25 15:44:00 · 518 阅读 · 0 评论 -
Adapter模式
Adapter的主要思想:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的那些类可以一起工作。 主要意思是:我们需要一种方法,为一个内容合适但接口不匹配的对象创建一个新的接口。 分析如下场景:有一个Shape类(抽象类),拥有name属性,和display方法(显式名字)。假设我们已经实现了椭圆子类,接着要实现圆子类,此时发现,已经有同事实现了原创 2009-06-29 16:49:00 · 622 阅读 · 0 评论 -
设计模式——command模式
command模式思想:command模式的主要思想是将用户的请求封装成对象,invoker对象封装请求对象,用户通过invoker来对产生不同的命令请求,发送给接受者。通过invoker封装不同的命令对象来映射用户的不同请求命令。一个典型的例子是,用户选择(发送请求)Item的子菜单,Item(这里把Item看成接收者)产生不同的动作。例如当用户选择undo、redo和display等不原创 2009-07-02 20:43:00 · 460 阅读 · 0 评论 -
builder模式
<br />from: http://d02540315.javaeye.com/blog/528836<br />Builder模式是为了将构建复杂对象的组装过程和它的创建部件与产品对象分离.注意: 是解耦组装过程和创建具体部件. <br />过程实现使用Director,它仅关心组装部件的过程,不关心每个具体部件的创建。 <br />而Builder则是定义出创建部件的接口,然而具体的创建,则是有ConcreteBuilder <br />来实现。<br />由于在Director使用是Builder接转载 2010-06-28 10:04:00 · 629 阅读 · 0 评论 -
bridge模式和stradegy模式的区别
<br />from:http://hi.baidu.com/zhizhesky/blog/item/6432017b899766f80bd18737.html<br />下边三段分别来自CSDN论坛的贴子和一篇blogjava的文章,看了之后令我茅塞顿开,为表尊重不在冗述,直接贴原文了。 <br />实际上所有模式可以只分为类模式和对象模式两种,类模式是用继承而对象模式是用委托 <br />Bridge模式和Strategy模式相似就是因为他们都将任务委托给了另外一个接口的具体实现, <br />转载 2010-06-29 10:00:00 · 952 阅读 · 0 评论