桥接模式
当系统有多个维度的独立变化的业务时,可以使用桥接模式将抽象和实现分离开,这样抽象和实现各自扩展不会有耦合。
应用场景
(1)java 实现虚拟机和平台无关性。将java和操作系统桥接起来。
(2)JDBC实现任意连接各种数据库。
不使用桥接时,是这样的:

使用了桥接是这样的:

public interface ComputerBrand {
void brand();
}
public abstract class ComputerType {
private ComputerBrand computerBrand;
public ComputerType(ComputerBrand computerBrand) {
this.computerBrand = computerBrand;
}
public void sale() {
computerBrand.brand();
}
}
public class AppleBrand implements ComputerBrand {
@Override
public void brand() {
System.out.println("苹果");
}
}
public class HuaweiBrand implements ComputerBrand {
@Override
public void brand() {
System.out.println("华为");
}
}
public class DesktopComputer extends ComputerType {
public DesktopComputer(ComputerBrand computerBrand) {
super(computerBrand);
}
@Override
public void sale() {
super.sale();
System.out.println("台式电脑");
}
}
public class NetoBookComputer extends ComputerType {
public NetoBookComputer(ComputerBrand computerBrand) {
super(computerBrand);
}
@Override
public void sale() {
super.sale();
System.out.println("笔记本");
}
}
public class BridgingPattern {
public static void main(String[] args) {
ComputerType computerType = new DesktopComputer(new AppleBrand());
computerType.sale();
ComputerType computerType1 = new NetoBookComputer(new HuaweiBrand());
computerType1.sale();
}
}
桥接模式的经典:jvm和系统通过桥接模式,实现了跨平台。

本文探讨了桥接模式如何在多维度变化的业务中,通过将抽象和实现分离,降低系统间的耦合。以Java虚拟机跨平台和JDBC连接不同数据库为例,展示了如何利用桥接模式。

1421

被折叠的 条评论
为什么被折叠?



