发送提示消息。基本上所有的带业务流程处理的系统都会有这样的功能,比如某人有新的工作了,需要发送一条消息提示他。从业务上来看,消息又分为普通消息、加急消息和特急消息多种,不同的消息类型,业务功能处理时不一样的,比如加急消息是在消息上添加加急,而特急消息除了添加特急外,还会做一条催促的记录,多久不完成会继续催促。从消息的手段上看,又有系统内短消息、手机短消息、邮件等等。
package 发送信息;
public interface Messagelmplementor {
public void send (String message,String toUser);
}
package 发送信息;
public class MessageEmail implements Messagelmplementor {
@Override
public void send(String message, String toUser) {
System.out.println("使用Email的方式,发送消息"+message+"给"+toUser);
}
}
package 发送信息;
public class MessageMobile implements Messagelmplementor {
@Override
public void send(String message, String toUser) {
System.out.println("使用手机消息的方式,发送消息"+message+"给"+toUser);
}
}
package 发送信息;
public class MessageSMS implements Messagelmplementor {
@Override
public void send(String message, String toUser) {
System.out.println("使用站内短消息的方式,发送消息"+message+"给"+toUser);
}
}
package 发送信息;
public abstract class AbstractMessage {
protected Messagelmplementor impl;
public AbstractMessage(Messagelmplementor impl) {
super();
this.impl = impl;
}
public void sendMessage(String message,String toUser) {
this.impl.send(message, toUser);
}
public AbstractMessage() {
super();
// TODO Auto-generated constructor stub
}
}
package 发送信息;
public class CommonMessage extends AbstractMessage {
public CommonMessage(Messagelmplementor impl) {
super(impl);
}
public void sendMessage(String message,String toUser) {
super.sendMessage(message, toUser);
}
}
package 发送信息;
public class SpecialUrgencyMessage extends AbstractMessage {
public SpecialUrgencyMessage(Messagelmplementor impl) {
super(impl);
// TODO Auto-generated constructor stub
}
public void hurry(String messageld) {}
public void sendMessage(String message,String toUser) {
message="特急:"+message;
super.sendMessage(message, toUser);
}
}
package 发送信息;
public class UrgencyMessage extends AbstractMessage {
public UrgencyMessage(Messagelmplementor impl) {
super(impl);
// TODO Auto-generated constructor stub
}
public void sendMessage(String message,String toUser) {
message="加急:"+message;
super.sendMessage(message, toUser);
}
public Object watch(String messageld) {
return null;
}
}
package 发送信息;
public class Client {
public static void main(String[] args) {
Messagelmplementor impl=new MessageSMS();
AbstractMessage m=new CommonMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
m=new UrgencyMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
m=new SpecialUrgencyMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
impl=new MessageMobile();
m=new CommonMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
m=new UrgencyMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
m=new SpecialUrgencyMessage(impl);
m.sendMessage("请喝一杯茶", "小李");
// TODO Auto-generated method stub
}
}