桥接(Bridge)模式的定义如下:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
举个栗子。
车企生产汽车,有不同类型以及不同颜色,例如生产suv,吉普车,轿车,颜色以红色与黄色举例。
遵循了里氏替换原则和依赖倒置原则,最终实现了开闭原则,对修改关闭,对扩展开放。
桥接(Bridge)模式的优点是:
- 抽象与实现分离,扩展能力强
- 符合开闭原则
- 符合合成复用原则
- 其实现细节对客户透明
所以在学习设计模式的时候发现与设计原则在很大程度上有共通点。
代码如下:
public class BridgeTest { public static void main(String[] args) { // 新建黄色的吉普车 JeepCar jeepCar = new JeepCar(); jeepCar.setCar(new Yellow()); System.out.println(jeepCar.getName()); // 新建红色的吉普车 SuvCar suvCar = new SuvCar(); suvCar.setCar(new RedColor()); System.out.println(suvCar.getName()); } } interface Color { String getColor(); } interface Car { void setCar(Color color); String getName(); } class SuvCar implements Car { private Color color; @Override public void setCar(Color color) { this.color = color; } @Override public String getName() { return "这是" + color.getColor() + "的" + "suv"; } } class JeepCar implements Car { private Color color; @Override public void setCar(Color color) { this.color = color; } @Override public String getName() { return "这是" + color.getColor() + "的" + "吉普车"; } } class RedColor implements Color { @Override public String getColor() { return "红色"; } } class Yellow implements Color { @Override public String getColor() { return "黄色"; } }
参考资料:
1.http://c.biancheng.net/view/1364.html
代码地址:https://gitee.com/zhoujie1/design-mode-and-principle.git
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)