1、模式理解:桥接模式,那么桥接什么呢,可以把桥接理解为连接,连接两个对象,那么两个对象怎么才能连接上呢,至少要让两个对象存在点关系吧,比方两个人谈恋爱,从得有些关系才好下手吧,总不能大马路上拉个人就跟她说我们谈恋爱吧,这不找抽吗
2、运用场景:想让对象建存在关系,就可以使用桥接模式,桥接模式也是丰富一个对象的过程,因为连接的多了就成了一个体系
3、代码示例:可以参考:https://www.cnblogs.com/V1haoge/p/6497919.html
//先创建一个产品接口
public interface Product {
void show();
}
//这个产品接口由下面两个产品实现
public class Moniter implements Product{
public void show(){
System.out.println("我是电脑显示器");
}
}
public class Host implements Product{
public void show(){
System.out.println("我是电脑主机");
}
}
//这两个对象可以组装为一台简易的电脑,所以可以使用桥接模式,使其跟具体的电脑产生关系,先创建一个抽象的电脑类
public abstract class Computer {
public List<Product> product;//电脑由很多其他类型的产品构成
public Computer(List<Product> product){
this.product=product;
}
abstract void getShow();
}
//接着写具体的电脑电脑类,这个类跟前面两个类可以通过这个抽象的电脑类作为桥梁产出联系
public class ThinkPadComputer extends Computer{
public ThinkPadComputer(List<Product> product) {
super(product);//这样创建具体电脑对象的时候就可以把相应的产品赋值给抽象电脑类中的产品参数
}
public void getShow(){
System.out.println("我是TinkPad电脑:");
for (Product p : product) {//因为抽象的时候赋值给了父级,而且父级是public,所以子类可以直接拿来用,似不似很方便
p.show();
}
}
}
//最后写个测试类
public class Main {
public static void main(String[] args) {
List<Product> list=new ArrayList<>();
list.add(new Moniter());
list.add(new Host());
ThinkPadComputer tpComputer=new ThinkPadComputer(list);//把产品都组装起来形成具体电脑
tpComputer.getShow();
}
}