前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >桥接模式实例消息发送

桥接模式实例消息发送

作者头像
Twcat_tree
发布2022-11-30 17:18:10
1950
发布2022-11-30 17:18:10
举报
文章被收录于专栏:二猫の家

发送消息 现在我们要实现这样一个功能:发送消息。从业务上看,消息又分成普通消息、加急消息和特急消息多种,不同的消息类型,业务功能处理是不一样的,比如加急消息是在消息上添加“加急”字样,而特急消息除了添加特急外,还会做一条催促的记录,多久不完成会继续催促。从发送消息的手段上看,又有系统内短消息、手机短消息、邮件等等。现在要实现这样的发送提示消息的功能,该如何实现呢?

UML图:

代码:

代码语言:javascript
复制
package xaioxifasong;
 
public abstract class AbstractMeesage {
protected MessageMethod impl;
public AbstractMeesage(MessageMethod impl)
{this.impl=impl;
}
public abstract void sendMessage(String message,String user);
}
代码语言:javascript
复制
package xaioxifasong;
 
public interface MessageMethod {
public void send(String message,String user);
}
代码语言:javascript
复制
package xaioxifasong;
 
public class CommonMessage extends AbstractMeesage {
 
	public CommonMessage(MessageMethod impl) {
		super(impl);
		
	}
 
	@Override
	public void sendMessage(String message, String user) {
	impl.send(message,user);
	}
	
 
}
代码语言:javascript
复制
package xaioxifasong;
 
public class UrgentMessage extends AbstractMeesage {
 
	public UrgentMessage(MessageMethod impl) {
		super(impl);
		// TODO 自动生成的构造函数存根
	}
 
	@Override
	public void sendMessage(String message, String user) {
		message="加急"+message;
 impl.send(message,user);
	}
	public Object watch(String messageid)
	{return null;
 
}
}
代码语言:javascript
复制
package xaioxifasong;
 
public class SpecialMessage extends AbstractMeesage{
 
	public SpecialMessage(MessageMethod impl) {
		super(impl);
		
	}
 
	@Override
	public void sendMessage(String message, String user) {
	message="特急"+message;
		impl.send(message,user);
	}
	public void hurry(String messageid)
	{System.out.println("快点");
 
}
}
代码语言:javascript
复制
package xaioxifasong;
 
public class SMS implements MessageMethod {
 
	@Override
	public void send(String message, String user) {
		System.out.println("使用站内消息发送方式发送消息"+message+"给"+user);
		
 
	}
 
}
代码语言:javascript
复制
package xaioxifasong;
 
public class Email implements MessageMethod {
 
	@Override
	public void send(String message, String user) {
		System.out.println("以邮件方式发送消息"+message+"给"+user);
 
	}
 
}
代码语言:javascript
复制
package xaioxifasong;
 
public class MobileMeeage implements MessageMethod {
 
	@Override
	public void send(String message, String user) {
		System.out.println("手机短消息方式发送信息"+message+"给"+user);
		
 
	}
 
}
代码语言:javascript
复制
package xaioxifasong;
 
public class Test {
public static void main(String args[])
{MessageMethod impl=new SMS();
AbstractMeesage m=new CommonMessage(impl);
m.sendMessage("喝一杯茶", "小李");
MessageMethod impl2=new Email();
MessageMethod impl3=new MobileMeeage();
AbstractMeesage p=new UrgentMessage(impl2);
AbstractMeesage q=new SpecialMessage(impl3);
p.sendMessage("喝一杯茶", "小王");
q.sendMessage("喝一杯茶", "老张");
}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档