设计模式之 桥接模式

138 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

前言

设计模式一直都是软件设计的底层根基的基础,没有基础建设,谈何高楼大厦,设计模式可以让代码减少冗余并且降低理解成本。

本次我将带大家了解一下桥接模式,桥接模式顾名思义现实生活中桥就是连接在河两端方便通行的建筑。在桥接模式中把两个不相关的内容进行组合那么便连接了两者的关系。

image.png

应用场景

我有很多电脑品牌,有联想、苹果、小米等等,但是每个电脑又有自己的产品比如苹果有笔记本但是没有台式机,联想没有手机(联想手机销量不高这里做假设)但是他有笔记本电脑与台式电脑,平常写法是实现多个逻辑针对联想写一套逻辑,针对苹果写一套逻辑,针对小米写一套逻辑。使用桥接模式后我们可以把手机抽象出来,把品牌抽象出来使他们成为两个不同的东西,然后使用桥接模式组合起来,便得到了结果。

代码示例

这里采用电脑来展示

public class Test {
    public static void main(String[] args) {
        //苹果笔记本
        Computer computer=new Laptop(new Apple());
        computer.info();

        //请你补一下 联想台式机的代码 答案在最后
    }
}

这是重点类,由这个类进行对品牌的桥接,使用品牌的接口方法来执行具体的方法。

//抽象的电脑类型类
public abstract class Computer {
    //组合品牌
    protected Brand brand;

    public Computer(Brand brand){
        this.brand=brand;
    }

    public void info(){
        brand.info(); //自带品牌
    }

}

补充答案

public class Test {
    public static void main(String[] args) {
        //苹果笔记本
        Computer computer=new Laptop(new Apple());
        computer.info();

        //联想台式机
        Computer len = new Laptop(new Lenovo());
    }
}