这篇文章主要介绍“Java桥接模式示例代码分析”,在日常操作中,相信很多人在Java桥接模式示例代码分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java桥接模式示例代码分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化”。
通过企业微信和qq的方式给员工发送消息
定义发送消息的接口
/**
* 发送消息的接口
* @author:liyajie
* @createTime:2022/2/21 10:33
* @version:1.0
*/
public interface AbstractSendMsgService {
// 发送消息
public void sendMsg();
}
定义普通消息接口
/**
* 普通消息接口
* @author:liyajie
* @createTime:2022/2/21 11:32
* @version:1.0
*/
public interface CommonMsg extends AbstractSendMsgService{
}
定义微信消息实现类
/**
* 发送消息的实现接口
* @author:liyajie
* @createTime:2022/2/21 10:35
* @version:1.0
*/
public class WxMsgServiceImpl implements CommonMsg{
@Override
public void sendMsg() {
System.out.println("老板使用微信给你发了消息,快去接收吧");
}
}
定义QQ消息实现类
/**
* 发送消息的实现接口
* @author:liyajie
* @createTime:2022/2/21 10:35
* @version:1.0
*/
public class QqMsgServiceImpl implements CommonMsg{
@Override
public void sendMsg() {
System.out.println("老板使用QQ给你发了消息,快去接收吧");
}
}
定义测试类
/**
* 测试类
* @author:liyajie
* @createTime:2022/2/21 10:37
* @version:1.0
*/
public class Test {
public static void main(String[] args) {
new WxMsgServiceImpl().sendMsg();
new QqMsgServiceImpl().sendMsg();
}
}
测试结果
定义发送消息抽象接口
/**
* 发送消息的抽象接口
* @author:liyajie
* @createTime:2022/2/21 10:33
* @version:1.0
*/
public abstract class NewAbstractSendMsgService {
protected SendMsgImplementor sendMsgImplementor;
public NewAbstractSendMsgService(SendMsgImplementor sendMsgImplementor){
this.sendMsgImplementor = sendMsgImplementor;
}
// 微信
public void sendMsg(){
this.sendMsgImplementor.sendMsg();
}
}
定义发送消息实现类
/**
* 发送消息的实现接口
* @author:liyajie
* @createTime:2022/2/21 10:35
* @version:1.0
*/
public class NewSendMsgServiceImpl extends NewAbstractSendMsgService{
public NewSendMsgServiceImpl(SendMsgImplementor sendMsgImplementor) {
super(sendMsgImplementor);
}
@Override
public void sendMsg() {
super.sendMsg();
}
}
定义发送消息统一接口
/**
* 发送消息统一接口
* @author:liyajie
* @createTime:2022/2/21 10:41
* @version:1.0
*/
public interface SendMsgImplementor {
void sendMsg();
}
定义微信发送消息实现类
/**
* 微信发送消息
* @author:liyajie
* @createTime:2022/2/21 10:45
* @version:1.0
*/
public class WxImplementor implements SendMsgImplementor{
@Override
public void sendMsg() {
System.out.println("老板使用微信给你发了消息,快去接收吧");
}
}
定义QQ发送消息实现类
/**
* QQ发送消息
* @author:liyajie
* @createTime:2022/2/21 10:45
* @version:1.0
*/
public class QqImplementor implements SendMsgImplementor{
@Override
public void sendMsg() {
System.out.println("老板使用QQ给你发了消息,快去接收吧");
}
}
定义测试类
/**
* 测试类
* @author:liyajie
* @createTime:2022/2/21 10:37
* @version:1.0
*/
public class TestNew {
public static void main(String[] args) {
NewSendMsgServiceImpl newSendMsgService = new NewSendMsgServiceImpl(new QqImplementor());
newSendMsgService.sendMsg();
NewSendMsgServiceImpl newSendMsgService2 = new NewSendMsgServiceImpl(new WxImplementor());
newSendMsgService2.sendMsg();
}
}
测试结果
方案一,即一般实现方式,微信和QQ两种发送消息的方式需要同时去实现CommonMsg和AbstractSendMsgService两个接口中的方法,耦合性较高;另外比如新增紧急消息的发送或者新增短信的方式发送消息的需求,改动较多,扩展性较差。
方案二,为桥接模式实现方式,在消息类的构造方法中传入接口SendMsgImplementor,从而使发送消息的抽象和具体实现进行了分离,实现了解耦;后期新增紧急消息的发送或者新增短信的方式发送消息的需求,也只需要新增紧急消息类和短信发送类即可,和QQ,微信等发送消息互不影响,扩展方便,符合开闭原则,复用原则。
到此,关于“Java桥接模式示例代码分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。