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

【2013.1.22】设计方式C++ 实现——Bridge

2013-01-26 
【2013.1.22】设计模式C++ 实现——Bridge// // // // // // // // /////2013.1.22// // // // // // // // //

【2013.1.22】设计模式C++ 实现——Bridge

// // // // // // // // //

///2013.1.22

// // // // // // // // //

老师布置了一项作业,

——制作一个小板凳。

被誉为天才的舒马赫同学很快的完成了一个又漂亮,又精致的艺术板凳。

而一直被班上同学所嘲笑的笨笨的爱因斯坦同学磨磨蹭蹭地,

转天早上才交上一个形状奇异而古怪的"小板凳"。


这是小时候看到的一篇励志故事。

不管寓意如何,

但是它正好可以适合我们今天所要讲的结构型设计模式:Bridge。


【核心】将抽象部分与它内部所组合的部分分离,使得它们可以独立地变化。


这是我将GoF的官方解释稍微变更一下所得的结论。


来看一下UML图:

【2013.1.22】设计方式C++ 实现——Bridge


其中Abstraction就是上述的抽象部分,

内部所组合的就是AbstractionImp。


实现的方法十分简单,

Abstraction内部组合一个(或多个)同学,

然后下达一个命令(例如老师布置制作小板凳作业),

而具体的实现,

就看传到Abstraction构造函数里面的是舒马赫还是爱因斯坦同学了。


这是一个非常实用的模式。


使用组合代替继承,

很好地代表了设计模式的核心思想:low coupling,high cohension.


热点排行