桥接模式

1、UML类图

在这里插入图片描述

2、代码

抽象类

/**
 * 抽象类
 */
public abstract class Graphical {
    Color color;

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

    public void showColor(){
        color.color();
    }

    public abstract void showShape();
}

具体抽象类

/**
 * 抽象类具体实现
 */
public class Round extends Graphical{

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

    public void showShape(){
        System.out.println("这是圆形");
    }
}
public class Square extends Graphical{

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

    public void showShape(){
        System.out.println("这是方形");
    }
}

实现类接口

/**
 * 实现类接口
 */
public interface Color {
    public void color();
}

具体实现类

/**
 * 具体实现类
 */
public class Red implements Color{
    @Override
    public void color() {
        System.out.println("这是红色");
    }
}
public class Green implements Color{
    @Override
    public void color() {
        System.out.println("这是绿色");
    }
}

3、与传统方式相比较

传统方式
在这里插入图片描述
1、当还有增图形时还需要再在下面添加两个类
2、违反了单一职责原则
通过使用桥接模式以上问题得以解决

桥接模式
1、将实现与抽象放在不同的类层次中,使得两个层次可以独立改变
2、结构型设计模式
3、基于类的最小设计原则,通过使用封装、聚合以及继承等行为让不同的类承担不同的职责,特点是把抽象和行为的实现独立开来,保持各部分的独立性以及对应他们的功能扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值