姓名 :桥接模式
英文名 :Bridge Pattern
价值观 :解耦靠我
个人介绍 : Decouple an abstraction from its implementation so that the two can vary independently. 将抽象和实现解耦,使得两者可以独立地变化。 (来自《设计模式之禅》)
从个人介绍可见,需要抽象化和实现化,然后使用桥接模式将抽象和实现解耦。
抽象化 :把一类对象共有的东西抽象到一个类里面,该类作为这类对象的基类。在这里我们可以抽象化的便是手机。
实现化 :将接口或抽象类的未实现的方法进行实现。在这里我们可以实现化的就是软件。
将抽象和实现解耦 :有了上面的抽象化和实现化,通过桥接模式来实现解耦。在这里,我们把打开软件 open() 放到软件实现中,而抽象的手机利用模板方法模式定义 openSoftware() 供手机子类去实现,手机子类也是调用软件的 open() 方法,并没有自己实现打开逻辑,也就是解耦了这个打开软件过程。
下面给出案例的代码。
桥接模式代码已经写完。为什么叫桥接模式呢?因为它将打开软件的具体实现放到了软件实现里面,而不是放在了手机,通过聚合方式去调用软件打开的方法,这就像一条桥一样连接手机和软件。
|