设计模式-桥接模式

桥接模式(Bridge)是结构型模式

它将抽象部分实现部分解耦,使二者可以独立变化,通过组合关系代替继承关系来连接不同的维度。

颜色类

java 复制代码
public interface Color {
    String applyColor();
}

颜色实现类

java 复制代码
class Blue implements Color {
    @Override
    public String applyColor() {
        return "蓝色";
    }
}
java 复制代码
class Red implements Color {
    @Override
    public String applyColor() {
        return "红色";
    }
}

形状类抽象

java 复制代码
abstract class Shape {
    protected Color color;  // 组合颜色实现

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

    public abstract void draw();
}

形状实现类

java 复制代码
class Circle extends Shape {
    public Circle(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.println("绘制" + color.applyColor() + "的圆形");
    }
}
java 复制代码
class Square extends Shape {
    public Square(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.println("绘制" + color.applyColor() + "的正方形");
    }
}

主函数

java 复制代码
    public static void main(String[] args) {

            // 红色圆形
            Shape redCircle = new Circle(new Red());
            redCircle.draw();  // 输出:绘制红色的圆形

            // 蓝色正方形
            Shape blueSquare = new Square(new Blue());
            blueSquare.draw(); // 输出:绘制蓝色的正方形

    }

创建不同形状颜色的图形时,需要组合类,不过对于类的增长爆炸并没有完全规避掉,只是减少了部分累的冗余

相关推荐
谢栋_1 小时前
设计模式从入门到精通之(五)观察者模式
观察者模式·设计模式
蓝天居士7 小时前
软考 系统架构设计师系列知识点 —— 设计模式之创建者模式
设计模式·系统架构·建造者模式
十五年专注C++开发9 小时前
C++中unique_lock和lock_guard区别
开发语言·c++·qt·设计模式
zhaoyqcsdn10 小时前
原型模式详解及在自动驾驶场景代码示例(c++代码实现)
c++·经验分享·笔记·设计模式
不当菜虚困11 小时前
JAVA设计模式——(1)适配器模式
java·设计模式·适配器模式
起风了布布12 小时前
在业务中砰然坠地的设计
后端·设计模式
ApeAssistant12 小时前
Spring + 设计模式 (四) 创建型 - 建造者模式
spring·设计模式
碎梦归途2 天前
23种设计模式-创建型模式之单例模式(Java版本)
java·开发语言·jvm·单例模式·设计模式
Yvonne9782 天前
Java八种常见的设计模式
java·设计模式