设计模式之桥接模式

七、桥接模式

桥接模式是将抽象部分与它的实现部分分离,使他们都可以独立地变化,他是一种对象结构型模式又称为接口模式。

以一个品牌和样式的例子。

如电脑品牌和台式机笔记本这种类型之间的匹配。

如果在之前我们都需要将两者对应定义之后再取出,但是现在可以通过需要什么自动匹配。

1、创建品牌接口

/**
 * @author liang.peng
 * @version 1.0
 * @description 品牌类
 * @since 2022/7/18 17:17
 **/
public interface Brand {

    void info();
}

2、创建两个真正的品牌

/**
 * @author liang.peng
 * @version 1.0
 * @description 联想品牌
 * @since 2022/7/18 17:21
 **/
public class Lenovo  implements  Brand{
    @Override
    public void info() {
        System.out.println("联想");
    }
}
/**
 * @author liang.peng
 * @version 1.0
 * @description 苹果品牌
 * @since 2022/7/18 17:24
 **/
public class Apple implements Brand{
    @Override
    public void info() {
        System.out.println("苹果");
    }
}

3、创建抽象电脑类

/**
 * @author liang.peng
 * @version 1.0
 * @description 抽象的电脑类
 * @since 2022/7/18 17:28
 **/
public abstract class Computer {
    //组合
    protected Brand brand;

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

    public void info(){
        brand.info();
    }

}
class Desktop extends Computer {
    public Desktop(Brand brand) {
        super(brand);
    }

    @Override
    public void info() {
        super.info();
        System.out.println("台式机");
    }
}

class Laptop extends Computer {
    public Laptop(Brand brand) {
        super(brand);
    }

    @Override
    public void info() {
        super.info();
        System.out.println("笔记本");
    }
}

4、测试

/**
 * @author liang.peng
 * @version 1.0
 * @description 测试
 * @since 2022/7/18 17:35
 **/
public class Test {
    public static void main(String[] args) {
        //打印一个苹果笔记本
        Computer appleLaptop = new Laptop(new Apple());
        appleLaptop.info();
        //联想台式机
        System.out.println("=================================");
        Computer desktop = new Desktop(new Lenovo());
        desktop.info();
    }

}

测试结果如下:

设计模式之桥接模式_第1张图片

你可能感兴趣的:(设计模式,桥接模式,java)