本文实例讲述了Java设计模式之桥接模式。分享给大家供大家参考,具体如下:
概念:
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。
什么情况下会用桥接模式?
简单的说就是我们在抽象对象的特征时,对象的特征属性又很抽象,不得不把属性再次抽象。
否则的话,具体子类的数量将会成几何增长,而且不易扩展。没办法维护现有代码。
举例,我们在抽象手机这二个对象时,它的几个属性,如操作系统,cpu,屏幕,运营商网络等都很复杂。我们不能简单的把这几个属性直接定义,必须再次抽象化。而具体的一个手机对象就是这些属性的组合,但不是简单的组合,属性需要实现自己作为属性的功能。在这样的设计下,代码的维护和扩展也就容易了。
注意:在说这个模式的时候,我不能保证说的和写得例子都是正确的,毕竟我也是新接触到,所有例子均基于与个人理解。
我认为的桥接模式说明图:
下面是例子:
1. 首先定义抽象类,抽象和描述对象的特征。
在对象的属性上划分维度,为了以后桥接和扩展。
package test.design.bridge;
public abstract class CellPhone {
private String cellPhoneName;
public CellPhoneSystem cellPhoneSystem;
public CellPhoneCPU cellPhoneCPU;
public void works(){
System.out.println("---------------------");
System.out.println("This cellphone is:"+this.getCellPhoneName()+",welcome to use. ");
System.out.println("This cellphone detail infomation:");
System.out.println("系统类型:"+this.getCellPhoneSystem().getSystemName());
System.out.println("cpu型号:"+this.getCellPhoneCPU().getCpuName());
System.out.println("---------------------");
}
publ