java软件体系结构模式----桥接
来源:互联网 发布:通信达股票软件 mac版 编辑:程序博客网 时间:2024/05/22 03:04
说明:
桥接模式进一步把一个抽象提(abstraction)的接口和实现分离开来,在这里,抽象体指的是把对象的和某种具体用途相关的属性和行为分离出来的表现形式。
从这个意义上来说,一个对象是一系列抽象体的集合,其中每一个抽象体值包含该项功能的相关属性和行为。彼此之间没有相互干扰。
其主要作用是解放抽象体的接口和实现之间的任何约束关系,这样一来,接口的改变和实现的改变就可以互相不影响地进行了。
概念:
开放/封闭原则要求一个软件模块应当做到:
a,对扩展来说是开放的---总是可以修改模块的功能或者增加新的特性
b,对修改来说是封闭的----不需要修改代码来做到这一点
实例:
应用程序的消息日志功能
代码:
实现
import java.util.*;
public interface MessageLogger {
public void logMsg(String msg);
}
import java.util.*;
public class ConsoleLogger implements MessageLogger {
public void logMsg(String msg) {
System.out.println(msg);
}
}
import java.util.*;
public class ConsoleLogger implements MessageLogger {
public void logMsg(String msg) {
System.out.println(msg);
}
}
接口:
import java.util.*;
public interface Message {
public void log(String msg);
}
import java.util.*;
public class EncryptedMessage implements Message {
private MessageLogger logger;
public EncryptedMessage(MessageLogger l) {
logger = l;
}
public void log(String msg) {
String str = preProcess(msg);
logger.logMsg(str);
}
private String preProcess(String msg) {
msg = msg.substring(msg.length() - 1) +
msg.substring(0, msg.length() - 1);
return msg;
};
}
import java.util.*;
public class TextMessage implements Message {
private MessageLogger logger;
public TextMessage(MessageLogger l) {
logger = l;
}
public void log(String msg) {
String str = preProcess(msg);
logger.logMsg(str);
}
private String preProcess(String msg) {
return msg;
};
}
- java软件体系结构模式----桥接
- java软件体系结构模式---集合模式
- java软件体系结构设计模式----装饰者
- java软件体系结构设计模式----适配器
- java软件体系结构设计模式------责任链
- java软件体系结构设计模式----外观
- java软件体系结构设计模式----代理
- java软件体系结构设计模式----虚代理
- 软件体系结构 适配器模式
- 软件体系结构 组合模式
- 软件体系结构--工厂模式
- 软件体系结构--组合模式
- 软件体系结构--适配器模式
- Java软件体系结构设计模式之结构模式 知识点摘录
- java软件体系结构设计模式----rmi远程代理
- java软件体系结构设计模式-------对象缓存器
- 软件体系结构--单例模式
- 面向模式的软件体系结构(卷1)-体系结构模式
- Oracle数据DOS命令导入导出imp/exp
- activemq 支持mysql持久化 消息队列使用
- 打造高并发安全系統(ssh)应该注意的几个问题
- “/Ox”和“/RTC1”命令行选项不兼容 或者 ml.exe 退出
- QTP测试框架之_报表
- java软件体系结构模式----桥接
- 正确配置和使用SQL mail
- 将二进制数据嵌入 XML 文档的三种方法
- 给那些微软的“黑客” 们!
- Table of Notes and Domino known limits
- Limits on numeric data representation in LotusScript
- Limits on array variables in LotusScript
- ASP.Net MVC中好的列表控件Grid
- JAVA查询Oracle数据库集群连接字符串及其JDBC jar包选择.