感受设计演变过程中所蕴含的大智慧,体会乐于怒的程序人生中值得回味的一幕幕。这是《设计模式——菜鸟天书》——桥接模式。
近几天小小菜参加了提高班大神关于 设计模式 座谈会,记录了点点滴滴。
Brgdge 是什么
将抽象部分与实现部分分离,从而使它们都可以独立地变化
何时用
两个维度(多角度分类);每一个维度都可能变化
例:一款手机代表图中的紫色对象,不同种的手机软件代表图中灰色对象,不同种种类的手机品牌代表图中浅蓝色对象。就能生产出不同品牌的手机安装不同种手机软件的物件。
怎么用
机房收费系统中的一般用户、操作员、管理员拥有一些类似的功能,增、删、改、查。
小结
1.Bridge模式使用“对象间的组合关系”解耦了抽象和实现之间固有的绑定关系,使得抽象和实现可以沿着各自的维度来变化。
2.所谓抽象和实现沿着各自维度的变化,即“子类化”它们,得到各个子类之后,便可以任意它们,从而获得不同路上的不同汽车。
3.Bridge模式有时候类似于多继承方案,但是多继承方案往往违背了类的单一职责原则(即一个类只有一个变化的原因),复用性比较差。Bridge模式是比多继承方案更好的解决方法。
4.Bridge模式的应用一般在“两个非常强的变化维度”,有时候即使有两个变化的维度,但是某个方向的变化维度并不剧烈——换言之两个变化不会导致纵横交错的结果,并不一定要使用Bridge模式
比较
UML图很像真的很像有木有,桥接模式是实现化(Implementor)角色和具体实现化(Concrete Implementor)角色所组成的实现化等级结构。策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
虽然一个是结构模型,一个是行为模型,并没有实际的可比性,其实不然哦,好好意会。