桥接模式
1、什么是桥接模式
桥接模式是用抽象类将多维度的产品进行分离,使用时将两个维度进行组合,好处是方便拓展,很好的实现了解耦。
举例:比如图形就是多维度产品,颜色和形状就是图形的两个维度,这种就可以使用桥接模式,形状抽象类注入颜色对象,当然也可以反之,具体看业务,实现效果就是比如正方形注入红色,就可以体现为红色正方形,注入蓝色,就是蓝色正方形
2、代码实现
1、创建注入接口,想要注入到形状中,肯定是需要用颜色接口的方式多态注入,如果只是把类注入就没办法拓展了
public interface Color {
public void draw();
}
2、创建颜色的实现类,此次创建红色,可以创建更多颜色注入
public class Red implements Color{
@Override
public void draw(){
System.out.println("红色");
};
}
3、接下来创建形状的抽象类,使用抽象类的原因是为了可以在注入颜色类的同时还可以创建让子类必须实现的方法,此次使用了protected修饰符,只为了可以让子类来引用拿到颜色
public abstract class Shape {
//protected 为了让子孙类可以使用该接口
protected Color color;
//构造器注入颜色接口
public Shape(Color color) {
this.color = color;
}
//子类必须实现该方法
public abstract void show();
}
4、创建形状子类,继承形状,调用颜色和自身方法,此次我们创建形状为圆形
public class Circular extends Shape{
public Circular(Color color) {
super(color);
}
@Override
public void show() {
color.draw();
System.out.println("圆形");
}
}
5、这样我们就可以根据创建一个形状对象,注入颜色接口,生成形状了,这种模式也就是桥接模式
public static void main(String[] args) {
//此时要化一个红色的圆形
Red red = new Red();
//把红色传给圆形 此时就能画出红色的原型
Shape shape = new Circular(red);
shape.show();
}