首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计形式解析

2012-10-30 
设计模式解析以前看到设计模型一类的书就敬而远之,感觉很高深,离我的级别还有很远。那是项目经理或者TeamLe

设计模式解析
以前看到设计模型一类的书就敬而远之,感觉很高深,离我的级别还有很远。那是项目经理或者TeamLeader的事。我只管执行就行了。
以前也查过GOF(四人帮)的设计模式。看得时候感觉都知道了。过后又不知道那些有什么用了。
最近在看Alan Shalloway,James R. Trott的《设计模式解析》,他根据GOF给出的设计模式的主要特征,结合自己的经验和理解,给出典型的例子,对设计模式由浅入深,娓娓道来。
第一种模式:Facade模式
Facade的英文意思是:(建筑物的)表面和外观
这也很容易理解,设计模式本来就是从建筑学引用过来的。
Facade模式为子系统中的一组接口提供一个统一接口。Facade模式定义了一个更高层次的接口,使子系统更加容易的使用。为子系统中的各类或结构或方法提供一个简洁一致的界面。

在实际编程中,我们肯定都是这么做的吧。只是不知道上升为理论之后有一个如此形象的名字而已。

第二种模式:Adapter模式
Adapter的英文意思:适配器,转换器。

Adapter模式将一个类的接口转化成客户希望的另一个接口。使原本接口不兼容的不能一起工作的类可以一起工作。

例子:
有一个shape类,它有setLocation(),getLocation(),display()方法。
现在有一个画圆的类继承它,来实现画圆的功能。
但是现在既存有一个画圆的类(XXCircle)。实现的功能正是我们想要的,但是就是接口不一样。
XXCircle,它的方法setLocationIt(),getLocationIt(),displayIt()等
怎么办呢,将其包装一下。
部分代码如下:
class Circle extends Shape{
public XXCircle myCircle;
public Cirle(){
myCircle = new XXCircle();
}
public void display(){
myCircle.displayIt();
}
}

这就是对象包装,现在他已经转化成我们能用的了。
还有一种是类的包装,好像是通过多重继承来实现的。

我的理解就像现实生活中的插座转化插头一样。好比我们有一个插座是两相的,插头确是3相的,怎么办,我们可以去日杂店买一个两相转三项的插头去。两相转三项的插头实现的功能就是Adapter模式要做的。
我的理解很形象吧。
其他模式还在学习中。。。。。。

热点排行