首页 > 应用开发 > > 初识设计模式 - 桥接模式
桥接设计模式(Bridge Design Pattern)也叫作桥梁模式,其描述是将实现和抽象放在两个不同的类层次中,使两个层次可以独立地变化。
桥接模式采用抽象关联取代了传统的多层继承,将类之间的静态继承关系转化为动态的对象组合关系,使系统更加灵活,并易于扩展,同时有效控制了系统中类的个数。
在桥接模式中,有以下概念需要理解:
桥接模式主要解决的是多维度的指数级变化。
以手机为例,手机既可以按照品牌分类,也可以按照手机软件来分类,两种维度交叉的变化远必一种维度多得多。
手机软件代码示例如下:
// 抽象类 public abstract class HandsetSoft { public abstract void run(); } // 实现类 public class HandsetGame extends HandsetSoft { @Override public void run() { System.out.println("运行手机游戏"); } } public class HandsetAddressList extends HandsetSoft { @Override public void run() { System.out.println("运行手机通讯录"); } }
手机品牌代码示例如下:
// 抽象类 public abstract class HandsetBrand { protected HandsetSoft soft; // 设置手机软件 public void setHandsetSoft(HandsetSoft soft) { this.soft = soft; } // 运行 public abstract void run(); } // 实现类 public class HandsetBrandA extends HandsetBrand { @Override public void run() { soft.run(); } } public class HandsetBrandB extends HandsetBrand { @Override public void run() { soft.run(); } }
客户端代码示例如下:
public class Client { public static void main(String[] args) { HandsetBrand ab; // A 品牌 ab = new HandsetBrandA(); ab.setHandsetSoft(new HandsetGame()); ab.run(); ab.setHandsetSoft(new HandsetAddressList()); ab.run(); // B 品牌 ab = new HandsetBrandB(); ab.setHandsetSoft(new HandsetGame()); ab.run(); ab.setHandsetSoft(new HandsetAddressList()); ab.run(); } }
桥接模式的主要优点如下:
桥接模式的主要缺点如下:
桥接模式的适用场景如下:
桥接模式是设计 Java 虚拟机和实现 JDBC 等驱动程序的核心模式之一,应用较为广泛。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000523/viewspace-3124572/ ,如需转载,请注明出处,否则将追究法律责任。