java设计模式之桥接模式

来源:互联网 发布:2017北京程序员工资 编辑:程序博客网 时间:2024/06/05 19:34

java设计模式参考文章:
Java设计模式实战,23种设计模式介绍以及在Java中的实现,Java设计模式, Java经典设计模式之五大创建型模式


## 定义 ##

业务场景参考这篇文章

将抽象部分与它的实现部分分离,使它们都可以独立的变化。

## 代码举例 ##

/** * @author bwx * @date 2017/11/28 * 品牌抽象接口 */public interface Brand {    String brand();}/** * @author bwx * @date 2017/11/28 */public class Dell implements Brand {    public String brand() {        return "戴尔";    }}/** * @author bwx * @date 2017/11/28 */public class Lenovo implements Brand {    public String brand() {        return "联想";    }}/** * @author bwx * @date 2017/11/28 * 类型抽象类 */public abstract class Computer {    private Brand brand;    public Computer(Brand brand) {        this.brand = brand;    }    public abstract String type();    public void sale() {        System.out.println("我们卖的是<" + brand.brand() + this.type() + ">电脑");    }}/** * @author bwx * @date 2017/11/28 */public class Desktop extends Computer {    public Desktop(Brand brand) {        super(brand);    }    public String type() {        return "台式";    }}/** * @author bwx * @date 2017/11/28 */public class Pad extends Computer {    public Pad(Brand brand) {        super(brand);    }    public String type() {        return "平板";    }}/** * @author bwx * @date 2017/11/28 * 桥接模式 */public class Main {    public static void main(String[] args) {        Computer computer = new Desktop(new Dell());        computer.sale();    }}

## 优点 ##

  • 桥接模式分离实现与抽象,使抽象可实现可以独立的扩展。当修改实现的代码时,不影响抽象的代码,反之也一样。
  • 满足开闭-原则,抽象和实现者处于同层次,使系统可独立的扩展这两个层次。增加新的具体实现者,不需要修改细化抽象,反之增加新的细化抽象也不需要修改具体实现。

## 解析 ##

  • 桥接模式是一种结构型模式,它主要应对的是:由于实际的需要,某个类具有两个或两个以上的维度变化,如果只是用继承将无法实现这种需要,或者使得设计变得相当臃肿。
  • 桥接模式的做法是把变化部分抽象出来,使变化部分与主类分离开来,从而将多个维度的变化彻底分离。最后,提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。
原创粉丝点击