Bridge桥接模式(设计模式11)

在没有使用桥接模式

扩展新问题(类归属膨胀问题)

1增加性的电脑类型,要增加每个品牌下面的类

2如果要增加一个新的电脑品牌,要增加美中电脑类型的类

违背单一职责原则:

·  一个类:联想笔记本,有两个引起这个类变化的原因。

 

 

 

bridge桥接模式:

 

品牌与类型是两个维度,要将其分开。通过一个Bridge桥连接两个属性

   如本例中,将品牌设置为接口,通过实现这个接口,创建不同的品牌类

  而在类型创建一个Computer抽象类,引入Brand(protected Brand brand;),

     通过这个引入的brand作为bridge连接品牌和类型。

      由此种类和品牌分开,相互独立。

    增加新的种类,不影响其他对象那个,直接添加。

//品牌类:

创建一个Brand接口,通过实现该接口,
Lenovo,Dell实现Brand接口。

 

 

 

 

//computer 电脑的类型。

Computer是一个抽象类,因为Brand是一个接口,brand是抽象属性。

通过持有Brand对象是Computer具有品牌属性。protected Brand brand;

通过构造函数将Brand传进来。

 

 

通过集成Computer创建Desktop和Laptop类。

 

如果要增加新的品牌创建实现Brand接口的类

如果要增加类型:创建继承Computer抽象类的类