桥接模式介绍
这个模式其实我觉得是用的最多并且最广泛的,如果你需要有两个实现能够相互独立的变化,并且互不影响,它们的实现与抽象部分解耦,则可以使用桥接模式。
桥接模式优点
- 两个维度的变化,不需要更改主系统,提高了扩展性,符合开闭原则。
- 这样设计对比工厂方法而言,极大的减少了子类的个数,一个相乘,一个是相加,结果可想而知。
桥接模式缺点
- 增加系统设计的难度,关联的关系建立在抽象层。
实现
场景:华为手机P40,Mate40用到了64RAM,128RAM,256RAM。比如如果用工厂模式的话,首先抽象手机类,再抽象RAM类,要实现不同的类别的手机,就需要分别继承各个RAM类,这样最后就是6(2 * 3)个,
如果用桥接模式则是5(2 + 3)个就可以实现。
-
首先抽象手机型号:
-
然后分别实现手机型号:
-
然后抽象RAM类,建立关联关系:
-
实现RAM类:
-
客户端实现及结果: