1、定义
2、关系图
3、优势劣势
5、代码实现
Brand
package oopdemo01.Design_pattern.bridge;
// 品牌
public interface Brand {
void info();
}
Lenovo
package oopdemo01.Design_pattern.bridge;
// 联想品牌
public class Lenovo implements Brand {
@Override
public void info() {
System.out.print("联想");
}
}
Apple
package oopdemo01.Design_pattern.bridge;
// 苹果品牌
public class Apple implements Brand {
@Override
public void info() {
System.out.print("苹果");
}
}
Computer
package oopdemo01.Design_pattern.bridge;
// 抽象的电脑类型类
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("笔记本");
}
}
Test
package oopdemo01.Design_pattern.bridge;
public class Test {
public static void main(String[] args) {
// 苹果笔记本
Computer computer = new Laptop(new Apple());
computer.info();
// 联想台式机
Computer computer1 = new Desktop(new Lenovo());
computer1.info();
}
}
控制台输出结果: