Java 实现桥接(Bridge)模式

时间:2023-03-09 20:27:52
Java 实现桥接(Bridge)模式

类图:

Java 实现桥接(Bridge)模式

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamp3d21scDQ1Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="800" height="500" alt="">

/**
* 手机壳、套
* @author stone
*
*/
public abstract class BaseCellphoneShell {
public abstract void mapping();//相应匹配哪种手机
}
/**
* 手机,桥接了 手机壳BaseCellphoneShell
* @author stone
*/
public abstract class BaseCellphone { private BaseCellphoneShell shell; public void setShell(BaseCellphoneShell shell) {
this.shell = shell;
} public BaseCellphoneShell getShell() {
return shell;
} public abstract void mapping();//相应哪种壳 }
/**
* 手机的实现
* @author stone
*
*/
public class Cellphone extends BaseCellphone { @Override
public void mapping() {
System.out.println("本手机相应的壳是:");
getShell().mapping();
} }
/**
* 手机壳的实现
* @author stone
*
*/
public class CellphoneShell extends BaseCellphoneShell { @Override
public void mapping() {
System.out.println("壳----iphone6");
} }
/*
* 桥接(Bridge)模式, 是结构型模式
*
* 将抽象化与实现化脱耦,使得二者能够独立的变化,也就是说将他们之间的强关联变成弱关联,
* 也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者能够独立的变化。 */
public class Test {
public static void main(String[] args) {
/*
* 在本例中:手机和手机壳之间有强关联的关系:要么手机相应一种壳(BaseCellphoneShell)。要么壳相应一种手机(BaseCellphone)
* 手机能够有多维度变化。如根据品牌划分的、根据尺寸划分的、根据个性需求划分的等
* 手机壳也有多维度变化,由于它要适配上面划分出来的手机
* 将桥作在了BaseCellphone中,聚合接入了BaseCellphoneShell
*/
BaseCellphone cellphone = new Cellphone();
cellphone.setShell(new CellphoneShell());//聚合接入
cellphone.mapping();
}
}