常见架构风格举例总结
2014-05-28 08:45
169 查看
1. 管道-过滤器风格
特征:每个功能构件都有一组输入输出,过滤器独立完成自身的功能,相互之间无须进行状态交互;各过滤器无须知道输入管道与输出管道所连接的过滤器的存在,仅仅保证自己的输入输出,不必理会其余过滤器。
优点:减少构件之间的耦合;容易维护和扩展;易于分析。
缺点:缺乏交互性。
举例:Linux Shell
的管线;数字通信系统。
2. 面向对象风格
特征:封装,继承,多态
优点:高模块化、代码封装、代码共享、易维护、良好扩展性
缺点:调用者必须知道被调对象的引用,当对象引用改变时,必须通知所有可能调用其的对象,系统内高耦合
举例:Java,C#开发的系统
3. 事件驱动风格
特征:系统中有许多目标,利用消息协作的方式来工作。主子系统负责整个系统的运行,每个元素拥有事件接收和处理机制
优点:易于完成并发任务,良好扩展性,良好交互性
缺点:对系统计算控制能力弱,难以共享数据,对象间逻辑复杂
举例:各种 IDE;MVC 框架;EJB的JMS 和 MessageDriven
Bean
4.分层风格:
特征:
每层只为上一层服务,同时接收来自下层的服务。
优点:抽象化,软件重用,易扩展
缺点:方法间接调用,影响性能
举例:TCP/IP协议;J2EE的表现层、领域层、数据控制层、数据库。
5.数据共享风格 (库风格)
特征:
中央的数据单元被共享,为一些单元提供存储和访问服务
优点:知识库扩展性,解决具体领域的问题
缺点:
举例:专家系统、自然语言处理、模式识别
6.解释器风格
特征:
固定的结构、伪代码、解释器引擎
优点:
缺点:
举例:Java虚拟机
7. 反馈控制环风格
特征:
通过其学习构件和决策者构件的运用,能利用学习和信息更新增强自身的功能
优点:
缺点:
举例:数据挖掘、机器学习系统
8. 两层C/S风格
特征:服务器管理应用程序,客户机运行应用程序。现已比较少用。
9. 三层C/S风格
特征:
客户端运行表现层。服务器运行功能层和数据层
优点:BS所缺乏的
缺点:客户端难以升级维护
举例:QQ,MSN,需安装的网游
10. B/S风格
特征:客户端采用浏览器。
优点:容易维护升级
缺点:交互性较差,响应较慢
举例:各种网站
参考:覃征《软件体系结构》
特征:每个功能构件都有一组输入输出,过滤器独立完成自身的功能,相互之间无须进行状态交互;各过滤器无须知道输入管道与输出管道所连接的过滤器的存在,仅仅保证自己的输入输出,不必理会其余过滤器。
优点:减少构件之间的耦合;容易维护和扩展;易于分析。
缺点:缺乏交互性。
举例:Linux Shell
的管线;数字通信系统。
2. 面向对象风格
特征:封装,继承,多态
优点:高模块化、代码封装、代码共享、易维护、良好扩展性
缺点:调用者必须知道被调对象的引用,当对象引用改变时,必须通知所有可能调用其的对象,系统内高耦合
举例:Java,C#开发的系统
3. 事件驱动风格
特征:系统中有许多目标,利用消息协作的方式来工作。主子系统负责整个系统的运行,每个元素拥有事件接收和处理机制
优点:易于完成并发任务,良好扩展性,良好交互性
缺点:对系统计算控制能力弱,难以共享数据,对象间逻辑复杂
举例:各种 IDE;MVC 框架;EJB的JMS 和 MessageDriven
Bean
4.分层风格:
特征:
每层只为上一层服务,同时接收来自下层的服务。
优点:抽象化,软件重用,易扩展
缺点:方法间接调用,影响性能
举例:TCP/IP协议;J2EE的表现层、领域层、数据控制层、数据库。
5.数据共享风格 (库风格)
特征:
中央的数据单元被共享,为一些单元提供存储和访问服务
优点:知识库扩展性,解决具体领域的问题
缺点:
举例:专家系统、自然语言处理、模式识别
6.解释器风格
特征:
固定的结构、伪代码、解释器引擎
优点:
缺点:
举例:Java虚拟机
7. 反馈控制环风格
特征:
通过其学习构件和决策者构件的运用,能利用学习和信息更新增强自身的功能
优点:
缺点:
举例:数据挖掘、机器学习系统
8. 两层C/S风格
特征:服务器管理应用程序,客户机运行应用程序。现已比较少用。
9. 三层C/S风格
特征:
客户端运行表现层。服务器运行功能层和数据层
优点:BS所缺乏的
缺点:客户端难以升级维护
举例:QQ,MSN,需安装的网游
10. B/S风格
特征:客户端采用浏览器。
优点:容易维护升级
缺点:交互性较差,响应较慢
举例:各种网站
参考:覃征《软件体系结构》
相关文章推荐
- 搭建基于spring MVC框架 + RESTful架构风格技术总结
- Rest – 架构风格与基于网络的软件架构设计 – 总结
- 常见的编程风格总结
- 转载自思特沃克(马伟) ----RESTful架构风格下的4大常见安全问题
- 微服务开发架构——Spring Cloud常见问题与总结<五>Spring Cloud 定位问题思路总结
- 微服务开发架构——Spring Cloud常见问题与总结<二>Hystrix/Feign 整合Hystrix后首次请求失败
- 架构设计中常见的语义耦合类型的总结
- 微服务开发架构——Spring Cloud常见问题与总结<一>Eureka常见问题
- 微服务开发架构——Spring Cloud常见问题与总结<三>Turbine 聚合数据不完整
- (转载)RESTful架构风格下的4大常见安全问题
- 系统架构设计总结—软件架构风格
- 系统架构设计总结—软件架构风格
- App后台开发运维和架构实践学习总结(9)——三种常见的API设计错误及解决方案
- 微服务开发架构——Spring Cloud常见问题与总结<四>Spring Cloud 各组件配置属性
- SQL SERVER中一些常见性能问题的总结
- SQL SERVER中一些常见性能问题的总结[转]
- Sql常见面试题(总结)
- CrystalReport开发常见错误总结
- [开发总结]Cad系统架构及数据模型----OLE容器及嵌入篇(三)
- SQL SERVER中一些常见性能问题的总结[转]