设计模式-桥接模式

一、所需要的类

一个接口:抽象出行为

N个接口实现类:实现具体的行为

一个抽象类:里面封装上面的类作为元素,然后再进行自己的行为

N个抽象类实现类:进行行为

二、实现代码

行为接口

java 复制代码
public interface Shape {
    public void draw();
}

行为接口是实现类1

java 复制代码
public class Square implements Shape {
    @Override
    public void draw() {
        System.out.println("画了一个正方形");
    }
}

行为接口是实现类2

java 复制代码
public class Circle implements Shape {
    @Override
    public void draw() {
        System.out.println("画了一个圆");
    }
}

上层抽象类

java 复制代码
public abstract class Color {
    Shape shape;
    public abstract void applyColor();
}

抽象类实现类1

java 复制代码
public class BlueColor extends Color{
    public BlueColor(Shape shape)
    {
        this.shape = shape;
    }
    @Override
    public void applyColor() {
        shape.draw();
        System.out.println("喷上蓝色");
    }
}

抽象类是实现类2

java 复制代码
public class RedColor extends Color{
    public RedColor(Shape shape) {
        this.shape = shape;
    }
    @Override
    public void applyColor() {
        shape.draw();
        System.out.println("喷上红色");
    }
}

调用类

java 复制代码
@SpringBootApplication
public class BridgeApplication {
    public static void main(String[] args) {
        Square square = new Square();
        BlueColor blueColor = new BlueColor(square);
        RedColor redColor = new RedColor(square);
        blueColor.applyColor();
        redColor.applyColor();
        Square square1 = new Square();
        BlueColor blueColor1 = new BlueColor(square1);
        RedColor redColor1 = new RedColor(square1);
        blueColor1.applyColor();
        redColor1.applyColor();
    }
}

三、总结

桥接模式,处理的是多对多的组合,一层套一层

相关推荐
超级大只老咪15 小时前
数组相邻元素比较的循环条件(Java竞赛考点)
java
小浣熊熊熊熊熊熊熊丶15 小时前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
毕设源码-钟学长15 小时前
【开题答辩全过程】以 公交管理系统为例,包含答辩的问题和答案
java·eclipse
啃火龙果的兔子15 小时前
JDK 安装配置
java·开发语言
星哥说事15 小时前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
派大鑫wink15 小时前
【JAVA学习日志】SpringBoot 参数配置:从基础到实战,解锁灵活配置新姿势
java·spring boot·后端
xUxIAOrUIII16 小时前
【Spring Boot】控制器Controller方法
java·spring boot·后端
Dolphin_Home16 小时前
从理论到实战:图结构在仓库关联业务中的落地(小白→中级,附完整代码)
java·spring boot·后端·spring cloud·database·广度优先·图搜索算法
醇氧16 小时前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop16 小时前
Aes加密 GCM java
java·开发语言·python