您的位置:首页 > 其它

桥接模式

2013-12-25 13:49 393 查看
发送消息的方式:

/**
* @author android3
* 实现发送消息的统一接口
*/
public interface MessageImplementor {
/**
* 发送消息
* @param message 要发送的消息内容
* @param toUser 消息发送的目的人员
*/
public void send(String message ,String toUser);
}

public class MessageSMS  implements MessageImplementor {
@Override
public void send(String message, String toUser) {
System.out.println("使用站内短消息的方式,发送消息"+message+"给"+toUser);
}
}

public class MessageEmail implements MessageImplementor {

@Override
public void send(String message, String toUser) {
System.out.println("使用Email的方式,发送消息"+message+"给"+toUser);
}
}


public class MessageMobile implements MessageImplementor {

@Override
public void send(String message, String toUser) {
System.out.println("使用手机的方式,发送消息"+message+"给"+toUser);
}
}

消息的类型
/**
* @author android3
* 抽象的消息对象
*/
public abstract class AbstractMessage {
/**
* 持有一个实现部分的对象
*/
protected MessageImplementor impl;

public AbstractMessage(MessageImplementor impl){
this.impl = impl;
}

/**发送消息转调实现部分的方法
* @param message 要发送的消息
* @param toUser 消息的目的地
*/
public void sendMessage(String message,String toUser){
this.impl.send(message, toUser);
}
}

public class CommonMessage extends AbstractMessage {

public CommonMessage(MessageImplementor impl) {
super(impl);
}
@Override
public void sendMessage(String message, String toUser) {
super.sendMessage(message, toUser);
}

}


public class UrgencyMessage extends AbstractMessage {

public UrgencyMessage(MessageImplementor impl) {
super(impl);
// TODO Auto-generated constructor stub
}

@Override
public void sendMessage(String message, String toUser) {
message = "《加急》:"+ message;
super.sendMessage(message, toUser);
}

}


public class SpecialUrgencyMessage extends AbstractMessage {

public SpecialUrgencyMessage(MessageImplementor impl) {
super(impl);
}

@Override
public void sendMessage(String message, String toUser) {
message = "特急"+message;
super.sendMessage(message, toUser);
}

}


public class Client {

public static void main(String[] args) {
MessageImplementor impl  =new MessageSMS();
AbstractMessage m = new CommonMessage(impl);
m.sendMessage("请上座", "xihe");
m = new UrgencyMessage(impl);
m.sendMessage("请上座", "xihe");
m = new SpecialUrgencyMessage(impl);
m.sendMessage("请上座", "xihe");

//手机方式
impl = new MessageMobile();
m = new CommonMessage(impl);
m.sendMessage("请上座", "xihe");
m = new UrgencyMessage(impl);
m.sendMessage("请上座", "xihe");
m = new SpecialUrgencyMessage(impl);
m.sendMessage("请上座", "xihe");

//Email方式
impl = new MessageEmail();
m = new CommonMessage(impl);
m.sendMessage("请上座", "xihe");
m = new UrgencyMessage(impl);
m.sendMessage("请上座", "xihe");
m = new SpecialUrgencyMessage(impl);
m.sendMessage("请上座", "xihe");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: