设计模式-结构模式-桥接模式

桥接模式(bridge Pattern)用于把抽象化和实现化解耦,减少代码量,提升代码可维护性。

为了更好的理解本模式,我们以桥为例。

桥左边为安徽,右边为湖北。那么安徽有合肥、安庆和黄山市,湖北有武汉、黄冈和天门市。那么当我们从安徽,通过桥到湖北这些城市就是我们要实现的功能。

在此处,我们把到达地作为接口,从安徽出发来作为抽象类,为什么一定要分为抽象类和接口实现呢,那是因为此场景为二维,如果单一只使用接口或者抽象类,那么我们的实现类个数为N*N,使用桥接模式可以简化类的设计。

 

public interface Target {

    void to();
}
public class WuHan implements Target {
    @Override
    public void to() {
        System.out.println("到达武汉");
    }
}
public class HuangGang implements Target {
    @Override
    public void to() {
        System.out.println("到达黄冈");
    }
}
public abstract class Source {

    public Target target;

    public Source(Target target) {
        this.target = target;
    }

    abstract void from();
}
public class HeFei extends Source {
    @Override
    void from() {
        System.out.print("从合肥出发");
        super.target.to();
    }

    public HeFei(Target target) {
        super(target);
    }
}
public class AnQing extends Source {
    public AnQing(Target target) {
        super(target);
    }

    @Override
    void from() {
        System.out.print("从安庆出发");
        super.target.to();
    }
}
public class Test {

    public static void main(String[] args) {
        Target target = new WuHan();
        Source source = new HeFei(target);
        source.from();
    }
}
从合肥出发到达武汉

Process finished with exit code 0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值