桥接模式

2020-08-04  本文已影响0人  潜心之力

一、模式简介

定义:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。
场景:某些类存在两个独立变化的维度,且这两个维度都需要进行扩展时,如不同颜色和字体的文字、不同品牌和功率的汽车、不同形状和颜色的图形等。使用桥接模式可以设计像Photoshop的软件,可以通过多维度自定义轻松实现目标对象。

二、模式实现

public interface Color {
    String color();
}

public class Red implements Color{
    @Override
    public String color() {
        return "red";
    }
}
public abstract class Shape {

    protected Color color;

    public Shape(Color color) {
        this.color = color;
    }

    public abstract String shape();

    public void display() {
        System.out.println(this.color.color() + "的" + this.shape());
    }
}

public class Triangle extends Shape {

    public Triangle(Color color) {
        super(color);
    }

    @Override
    public String shape() {
        return "triangle";
    }
}
Color color = new Red();
Shape shape = new Triangle(color);
shape.display();
上一篇 下一篇

猜你喜欢

热点阅读