桥接模式

2021-05-19  本文已影响0人  金煜博

什么是桥接模式

把不同维度(类型)且有关联的对象通过桥接(抽象对象)的方式组合到一起

示例图

图片.png

示例场景

给不同品牌的电脑安装不同类别的cpu 内存

示例代码

1.创建cpu接口

public interface Cpu {
    public void addCpu();
}

2.创建cpui5 cpui7类

public class Cpui5 implements Cpu {
    @Override
    public void addCpu() {
        System.out.println("安装i5的cpu");
    }
}
public class Cpui7 implements Cpu {
    @Override
    public void addCpu() {
        System.out.println("安装i7的cpu");
    }
}

3.创建Memory内存接口

public interface Memory {
    public void addMemory();
}

4.创建Memory8g Memory16g内存类

public class Memory8g  implements  Memory{
    @Override
    public void addMemory() {
        System.out.println("安装8g内存");
    }
}
public class Memory16g implements  Memory {
    @Override
    public void addMemory() {
        System.out.println("安装16g内存");
    }
}

5.创建电脑抽象类

public abstract class Computer {
    public Cpu cpu;

    public  Memory memory;


    public void setCpu(Cpu cpu) {
        this.cpu = cpu;
    }

    public void setMemory(Memory memory) {
        this.memory = memory;
    }

    public  abstract void assemblingComputer();
}

6.创建Asus lenovo类

public class Asus extends  Computer {
    @Override
    public void assemblingComputer() {
        System.out.println("组装华硕品牌的电脑");
        cpu.addCpu();
        memory.addMemory();
    }
}
public class Lenovo extends Computer {
    @Override
    public void assemblingComputer() {
        System.out.println("组装联想品牌的电脑");
        cpu.addCpu();
        memory.addMemory();
    }
}

7.创建启动类

public class Test {
    public static void main(String[] args) {
        Computer lenovo = new Lenovo();
        lenovo.setCpu(new Cpui5());
        lenovo.setMemory(new Memory16g());
        lenovo.assemblingComputer();
        System.out.println("*****************************************");
        Asus asus = new Asus();
        asus.setCpu(new Cpui7());
        asus.setMemory(new Memory8g());
        asus.assemblingComputer();
    }
}

8.运行结果


图片.png
上一篇 下一篇

猜你喜欢

热点阅读