标签:不能 void stat over alt java super new lan
桥接模式结构图:
示例代码:
// 桥接角色Message接口
public interface Message {
void sendMessage(String message, String toUser);
}
// 具体Message角色Email
public class EmailMessage implements Message{
@Override
public void sendMessage(String message, String toUser) {
System.out.println("发送Email消息:" + message + "给" + toUser);
}
}
// 具体Message角色SMS
public class SmsMessage implements Message{
@Override
public void sendMessage(String message, String toUser) {
System.out.println("发送Sms短消息:" + message + "给" + toUser);
}
}
// 桥接抽象角色AbstractMessage
public abstract class AbstractMessage {
protected Message message;
public AbstractMessage(Message message) {
this.message = message;
}
public abstract void sendMessage(String msg, String toUser) ;
}
// 普通消息角色
public class NormalMessage extends AbstractMessage{
public NormalMessage(Message message) {
super(message);
}
@Override
public void sendMessage(String msg, String toUser) {
msg = "[普通]" + msg;
this.message.sendMessage(msg, toUser);
}
}
// 紧急消息角色
public class UrgencyMessage extends AbstractMessage{
public UrgencyMessage(Message message) {
super(message);
}
@Override
public void sendMessage(String msg, String toUser) {
msg = "[加急]" + msg;
this.message.sendMessage(msg, toUser);
}
}
// 测试类
public class BridgeTest {
public static void main(String[] args) {
NormalMessage normalMessage = new NormalMessage(new EmailMessage());
normalMessage.sendMessage("今天忙不忙?", "小安");
UrgencyMessage urgencyMessage = new UrgencyMessage(new SmsMessage());
urgencyMessage.sendMessage("能不能多聊会?", "小安");
}
}
总结:
优点:分离了抽象部分及具体实现部分,提高了系统的扩展性,符合开闭原则;
缺点:增加了系统的理解与设计难度,需要正确的识别系统中两个独立变化的维度.
标签:不能 void stat over alt java super new lan
原文地址:https://www.cnblogs.com/wqlken/p/14698704.html