自学内容网 自学内容网

桥接 设计模式 软考

package com.winner.bridge_pattern;

/**
 * 桥接设计模式是一种结构型设计模式,它允许将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过创建桥接接口来实现不同的抽象与实现之间的连接。
 * 它可以在不影响客户端代码的情况下,动态地将抽象部分和实现部分组合起来。
 *
 * 想象一下你要开发一个画图软件,其中有多种形状(如圆形、矩形等)和多种颜色(如红色、蓝色等)。
 * 使用桥接模式,你可以将形状和颜色分别作为抽象部分和实现部分,然后通过桥接接口将它们连接起来
 *
 * 定义形状抽象类
 *
 * 在这个示例中,Color接口定义了不同颜色的实现,例如Red和Blue。Shape是一个抽象类,
 * 它使用Color接口作为桥接接口,将不同的形状(如Circle和Rectangle)与颜色实现部分连接起来。
 *
 * @Author wangxinle5
 * @since 2024-04-25
 */
// 定义颜色接口
interface Color {
    void applyColor();
}

// 实现不同颜色类
class Red implements Color {
    @Override
    public void applyColor() {
        System.out.println("Applying red color");
    }
}

class Blue implements Color {
    @Override
    public void applyColor() {
        System.out.println("Applying blue color");
    }
}

// 定义形状抽象类
abstract class Shape {
    protected Color color; // 使用桥接接口

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

    public abstract void draw();
}

// 实现不同形状类
class Circle extends Shape {
    public Circle(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.print("Drawing circle with ");
        color.applyColor(); // 使用颜色接口
    }
}

class Rectangle extends Shape {
    public Rectangle(Color color) {
        super(color);
    }

    @Override
    public void draw() {
        System.out.print("Drawing rectangle with ");
        color.applyColor(); // 使用颜色接口
    }
}

// 测试桥接模式
public class BridgePatternDemo {
    public static void main(String[] args) {
        // 使用不同颜色创建形状  Shape抽象类有桥接接口 Circle和Rectangle就可以用桥接接口的方法
        Shape redCircle = new Circle(new Red());
        Shape blueRectangle = new Rectangle(new Blue());

        // 绘制形状
        redCircle.draw();
        blueRectangle.draw();
    }
}


原文地址:https://blog.csdn.net/qq_29883183/article/details/143652078

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!