内容由B站UP主动力节点产出,本文仅作为学习笔记
桥接设计模式
定义:桥接是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型设计模式,它通过提供抽象化和实现化之间的桥接结构,实现二者的解耦。该模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。
举例说明,实现功能用工具绘制图形:
public interface Shape{
public void draw(String tools);
}
public class Circle implements Shape{
@Override
public void draw(String tools){
System.out.println("使用" + tools + "绘制圆形");
}
}
public class Square implements Shape{
@Override
public void draw(String tools){
System.out.println("使用" + tools + "绘制方形");
}
}
以上是Shape
接口的两个实现类,接下来设计工具类的抽象类:
public abstract class Tools{
public Tools(Shape shape){
}
public abstract void use();
}
public class Pencil extends Tools {
private Shape shape;
public Pencil(Shape shape) {
this.shape = shape;
}
@Override
public void use() {
shape.draw("铅笔");
}
}
这里相当于用构造器的方式作为桥接,桥接了两个功能,使得实现化和抽象化各自独立存在又能联合作用。测试如下:
class Test{
public static void main(String[] args) {
Tools tools = new Pencil(new Circle);
tools.use();
tools = new Pencil(new Square);
tools.use();
}
}