设计模式心得(待继续补充)

来源:互联网 发布:同学通讯录制作软件 编辑:程序博客网 时间:2024/06/05 00:53

作者:fbysss
msn:jameslastchina@hotmail.com 
blog:blog.csdn.net/fbysss
声明:本文由fbysss原创,转载请注明出处
关键字:设计模式

Bridge模式

接口和实现代码分离 ,指的是什么模式?(Proxy?Bridge?Observer

典型的例子:飞机有客机和货机,制造商有空客、波音、麦道。

使用桥接模式设计,

interface AirPlane{

    AirPlaneMaker apm ;   

}

PassengerPlane implements AirPlan{}

CargoPlane implements AirPlan{}

interface AirPlaneMaker{

}

AirBus implements AirPlaneMaker{};

MD implements AirPlaneMaker{};

Boeing implements AirPlaneMaker{};

 

 

其中AirPlane叫抽象化(Abstraction)角色,AirPlaneMaker叫实现化(implementor)角色;AirPlane的子类叫修正抽象化(Refined Abstraction)角色,AirplaneMaker的子类叫具体实现化(Concrete Implementor)角色

JDBC/ODBC不是桥接模式,而是适配器模式。

 

Strategy模式和Template Method模式:

两者很相似,核心都是多态的体现。形式上,Strategy包含了一个Template Method模式,但是两者考虑的角度不一样:

Strategy中的策略类一般是一个动词,强调行为,相当于把一个方法抽象出来单独作为一个类,然后这个类采用Template Method进行重构,再组合到原类中;Template Method强调层次性,由上自下设计,类以名词居多。

一般在进行系统架构设计时,往往要使用Template Method模式,而对某些行为方法进行扩展性考虑时,往往要用到Strategy模式。通过上述分析,可以说这么说:从形式上看,Strategy 模式大于 Template Method模式;从应用层次上看,Template Method大于Strategy模式。

原创粉丝点击