- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件体系结构风格
模块级别
调用返回风格
主程序子路径:
部件从其父部件当中得到控制信息,绝不向其同级或上级发出调用信息。
部件:过程、功能和模块。
连接键:程序调用。
约束:控制流总是由顶端延层次结构开始向下传递。
面向对象式:
对象能够帮助进行封装内部的secrets,只有通过方法才能够访问对象。
部件:对象或模块
连接键:方法调用
约束:数据的表示对其他对象来说是透明的;每个对象的数据完整性自行维护,每个对象是独立的。
管道过滤器:
每个Filter都能处理数据然后传递给下一个Filter,Filter可以在任意处处理数据,各个Filter之间无数据共享,通过Pipe交互。
部件:Filter
连接键:Pipe
约束:Filter之间不共享数据;Filter并不了解上下Filter;单个Filter的正确性并不依赖上下的Filter
层次风格:
描述层与层之间的调用结构。
部件:过程或对象的集合
连接键:过程调用或方法调用
约束:系统要被严格组织成层次结构,每一层为其上层提供服务,并调用下一层,不允许跨层调用。
比较
主程序和子路径中算法和数据结构式绑定的,修改算法——差;如果要修改数据,则需要所有的模块进行更改——差;增加功能到系统中,要修改一个部件——居中;空间性能很好,数据时共享的,时间性能差,不存在并发处理;重用性不好,所有模块都与数据进行绑定
优点:处理过程清晰,易理解;能够保证正确性
缺点:不利于更改和复用;处理不当会形成公共耦合
适用:顺序处理系统;正确性要求较高的系统
面向对象式在算法修改——居中,只要不涉及接口可以随意进行修改;数据表示修改——优,数据在接口中隐藏了;增加新功能到系统中——居中,需要对现有模块进行修改;空间性能很好,在方法调用中可以共享数据,时间性能差,不存在并发;可复用性居中,接口依赖。
优点:只要不修改接口,模块之间的可修改性很好;系统被分解为许多独立的部分
缺点:对象之间交互必须了解对方的接口;对象可能产生副作用
适用:能够把系统分解为算法+数据的结构,以进行封装
管道过滤器在算法修改——优,Filter之间完全独立;更改数据表示方式——居中,只会更改存在的Pipe;在增加新功能——优,通过增加新的Filter实现;空间性能——差,Filter之间没有共享数据,需要对数据进行拷贝,时间性能——优,存在并发,但是拷贝数据可能会花费时间;可复用性——优。
优点:易于理解,支持复用,易于维护和扩展,对于特殊的要求可以满足,支持并发。
缺点:不能很好的处理交互问题,传输数据需要额外的空间,可能丢失额外的性能并增加复杂度
适用:系统可分解为多个可并行的任务
层次结构
优点:基于增加抽象层次设计;易于修改;易用重用
缺点:很多系统无法简单的划分层次;必须按层次调用,增加高层和低层实现之间的耦合
适用:系统可以按照功能划分为不同的层次
隐式调用风格(基于事件)
数据封装,所有调用通过事件完成
部件:agent
连接键:事件处理
约束:抛出事件的部件不了解被影响的部件有哪些;对事件的接收顺序也不能有假设;不能假设事件抛出一定有部件进行处理
不需要共享数据,算法修改——优;共享数据进行封装,但是仍然存在,数据表示更改——居中;添加新功能——居中,需要修改现有的模块;空间性能——优,数据是共享的,时间性能优,存在并发性;可复用性——优,只要是处理特定的事件都可以进行复用。
优点:可重用性好,可修改性好
缺点:正确性得不到保障;调试测试会很困难
适用:通常适用于能把系统分解为松散耦合的系统
黑板风格:
各个客户端读写同一块存储区域
部件:一个中心数据结构表示系统状态,一系列独立部件含有在中心数据结构上的操作。
连接键:过程调用或直接内存访问
约束:所有的agent都是独立的;每个agent都依赖共享数据;agent对数据进行操作。
优点:可以充分存储大量数据,空间性能优越;减少复杂数据的复制
缺点:必须能够建立稳定的中心数据区;Blackboard可能会成为瓶颈;数据的演化代价很高
适用:可以建立一个中心数据区,并且维护复杂的中心信息。
MVC风格
Model与Controller、View分离。
部件:Model部件用来维护领域信息,通知View的更改;View 部件用来给用户展示信息,发送用户请求到Controller;Controller部件用来更改Model状态,对用户请求响应。
连接键:系统调用、消息、时间、直接内存访问
优点:允许多态,在一个模型中有独立的View;Views能够被序列化;可以任意增加删除View和Controller
缺点:增加了复杂度;在View中不能有效获得数据访问;与现代用户界面工具不是特别兼容
适用:接口的更改很容易并且可能发生在运行时;用户界面的修改并不会影响逻
文档评论(0)