最近上班轻松,看看设计模式啥的,看到桥接模式,有些心得,写下来以便以后回忆回忆。
桥接模式的好处就不多说了,无非就是实现和抽象分离,各自变化等。
进入主题吧:
个人理解桥接模式:
比如蜡笔,和毛笔这两个东西,如果用蜡笔画画,我们知道蜡笔的颜色和蜡笔本身是偶会在一起的,不像毛笔,毛笔本身是没有颜色的,如果我要画画,需要12种颜色,型号有大中小,那么就需要36支蜡笔,而反观毛笔,我只需要12种颜料,然后大中小三种毛笔类型,如果我们用面向对象思想来设计,那么蜡笔需要36个类,而毛笔只需要15个类。为什么会出现这种情况呢?
其实这个道理很简单,就是毛笔它的颜色没有和它本身绑定在一起,也就是说它们解耦了。
如果毛笔和颜色绑定了那么就如图所示:
从这里看,我们看到有36个类,如果用桥接模式就变成如下图了:
可以明显看到类减少了。
体会:其实说白了,就是将类的功能职责最小话,即单一职责。我们这里就是抽取了笔中,颜
色这个维度进行抽象.然后利用组合,也符合了面向对象设计思想的优先使用组合而非继承这个
思想。当一个类的子类需要扩展时,如果要在两个维度进行扩展,那么就可以使用Bridge模式。