桥梁模式和策略模式、工厂模式有些类似的地方,基于一个抽象类,来创建不同的实例化子类。
1.桥梁模式
这里,在合适的情况下,抽象行为可以省略,于是就成了一个基本的接口——实现模型。
- 策略模式
从下图的调用结构看,策略模式和桥梁模式非常类似,结构都差不多。
- 工厂模式:
如果用工厂模式来实现,就是下面的结构:
所以相比之下只是多了一层工厂的抽象而已。
自学还是遇到了一些瓶颈,我觉得他们差不多嘛。。。
个人理解:
桥梁模式&工厂模式
桥梁模式是侧重系统中,个别零部件的可配置化。有的书说,发现类的继承有N层时,可以考虑使用桥梁模式。或者一个系统中,很多的部件需要进行抽象的时候。将部件抽象,让整体去调用抽象接口。
比如,如果有大中小三种粗细,和红绿蓝24种颜色画画。蜡笔需要24*3只笔,水彩画只需要24种颜色和3个毛笔。因为水彩画可以把大小和颜色分开,增加各自的种类不用对另外的一种产生影响。但是蜡笔是独立的,大小和颜色是混在一起的。因此每增加一种大小,就需要增加所有的颜色。反过来增加一种颜色也需要增加所有的大小。当组件更多时,开销就更大了。说到这里,感觉又有点构建者的味道了。。。不过,主要目的是把多种维度的变化分离,然后再分别设置想要的组合。
工厂模式当然是制造独立的不同对象,而不是侧重对象的某个组件。
桥梁模式&策略模式
桥梁模式关注的是抽象和实现的分离,使得它们可以独立地发展;桥梁模式是结构型模式,侧重于软件结构。
而策略模式关注的是对算法、规则的封装,使得算法可以独立于使用它的用户而变化;策略模式是行为型模式,侧重于对象行为。
设计模式其实就是一种编程思想,没有固定的结构。要区分不同的模式,要多从语义和用途的角度去判断。
好吧,再多找几本书对照看看。这个先发。