Java桥接模式示例代码分析
这篇文章主要介绍“Java桥接模式示例代码分析”,在日常操作中,相信很多人在Java桥接模式示例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java桥接模式示例代码分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
定义桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。
案例需求通过企业微信和qq的方式给员工发送消息
方案一定义发送消息的接口
/***发送消息的接口*@author:liyajie*@createTime:2022/2/2110:33*@version:1.0*/publicinterfaceAbstractSendMsgService{//发送消息publicvoidsendMsg();}
定义普通消息接口
/***普通消息接口*@author:liyajie*@createTime:2022/2/2111:32*@version:1.0*/publicinterfaceCommonMsgextendsAbstractSendMsgService{}
定义微信消息实现类
/***发送消息的实现接口*@author:liyajie*@createTime:2022/2/2110:35*@version:1.0*/publicclassWxMsgServiceImplimplementsCommonMsg{@OverridepublicvoidsendMsg(){System.out.println("老板使用微信给你发了消息,快去接收吧");}}
定义QQ消息实现类
/***发送消息的实现接口*@author:liyajie*@createTime:2022/2/2110:35*@version:1.0*/publicclassQqMsgServiceImplimplementsCommonMsg{@OverridepublicvoidsendMsg(){System.out.println("老板使用QQ给你发了消息,快去接收吧");}}
定义测试类
/***测试类*@author:liyajie*@createTime:2022/2/2110:37*@version:1.0*/publicclassTest{publicstaticvoidmain(String[]args){newWxMsgServiceImpl().sendMsg();newQqMsgServiceImpl().sendMsg();}}
测试结果
方案二定义发送消息抽象接口
/***发送消息的抽象接口*@author:liyajie*@createTime:2022/2/2110:33*@version:1.0*/publicabstractclassNewAbstractSendMsgService{protectedSendMsgImplementorsendMsgImplementor;publicNewAbstractSendMsgService(SendMsgImplementorsendMsgImplementor){this.sendMsgImplementor=sendMsgImplementor;}//微信publicvoidsendMsg(){this.sendMsgImplementor.sendMsg();}}
定义发送消息实现类
/***发送消息的实现接口*@author:liyajie*@createTime:2022/2/2110:35*@version:1.0*/publicclassNewSendMsgServiceImplextendsNewAbstractSendMsgService{publicNewSendMsgServiceImpl(SendMsgImplementorsendMsgImplementor){super(sendMsgImplementor);}@OverridepublicvoidsendMsg(){super.sendMsg();}}
定义发送消息统一接口
/***发送消息统一接口*@author:liyajie*@createTime:2022/2/2110:41*@version:1.0*/publicinterfaceSendMsgImplementor{voidsendMsg();}
定义微信发送消息实现类
/***微信发送消息*@author:liyajie*@createTime:2022/2/2110:45*@version:1.0*/publicclassWxImplementorimplementsSendMsgImplementor{@OverridepublicvoidsendMsg(){System.out.println("老板使用微信给你发了消息,快去接收吧");}}
定义QQ发送消息实现类
/***QQ发送消息*@author:liyajie*@createTime:2022/2/2110:45*@version:1.0*/publicclassQqImplementorimplementsSendMsgImplementor{@OverridepublicvoidsendMsg(){System.out.println("老板使用QQ给你发了消息,快去接收吧");}}
定义测试类
/***测试类*@author:liyajie*@createTime:2022/2/2110:37*@version:1.0*/publicclassTestNew{publicstaticvoidmain(String[]args){NewSendMsgServiceImplnewSendMsgService=newNewSendMsgServiceImpl(newQqImplementor());newSendMsgService.sendMsg();NewSendMsgServiceImplnewSendMsgService2=newNewSendMsgServiceImpl(newWxImplementor());newSendMsgService2.sendMsg();}}
测试结果
对比分析方案一,即一般实现方式,微信和QQ两种发送消息的方式需要同时去实现CommonMsg和AbstractSendMsgService两个接口中的方法,耦合性较高;另外比如新增紧急消息的发送或者新增短信的方式发送消息的需求,改动较多,扩展性较差。
方案二,为桥接模式实现方式,在消息类的构造方法中传入接口SendMsgImplementor,从而使发送消息的抽象和具体实现进行了分离,实现了解耦;后期新增紧急消息的发送或者新增短信的方式发送消息的需求,也只需要新增紧急消息类和短信发送类即可,和QQ,微信等发送消息互不影响,扩展方便,符合开闭原则,复用原则。
到此,关于“Java桥接模式示例代码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。