设计模式(十七)——桥接模式(Bridge)
定义
把抽象化与实现化解耦,使得二者可以独立变化
应用场景
现在有M手机上安装了A软件,可以写一个手机类,M手机继承手机类,M手机有A软件属性,假如又有一个N手机要安装A软件,或者M手机要装B软件,如果用类来继承实现就需要太多的类了。
可以将手机品牌和手机软件分离开来
//手机品牌
public interface Brand {
public void run();
}
//手机软件
public interface Software {
public void run(Brand brand);
}
M品牌的手机
public class MBrand implements Brand{
@Override
public void run() {
System.out.println("M品牌手机");
}
}
A软件
public class Asoftware implements Software{
@Override
public void run(Brand brand) {
brand.run();
System.out.println("A软件运行");
}
}
测试
public class Main {
public static void main(String[] args) {
Software asoftware = new Asoftware();
Brand mBrand = new MBrand();
asoftware.run(mBrand);
}
}
运行结果: