软件体系结构及应用.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
体系结构风格的选择 Solution 2: Abstract Data Types Advantages: –某一构件的算法与数据结构的修改不会影响其他构件 –构件之间依赖性降低,提高了复用度 Disadvantages: –不适合功能的扩展 –为了增加新功能,要么修改已有的模块,要么就加入新的模块 软件体系结构及应用 Solution 3: 隐式调用 体系结构风格的选择 Solution 3:隐式调用 为了降低各模块之间的耦合度,提高复用性能,将模块之间的“直接调 用”改为“隐式调用”——事件驱动的体系结构风格。 采用与Solution 1相似的方式: – 四个功能模块 – 共享数据 不同之处: – 共享数据并不直接对外暴露数据格式,而是借鉴了Solution 2中的方式,对 数据进行封装,通过接口向外暴露对数据的操作; – 各功能模块之间不再通过主程序来控制,而是事件驱动。 体系结构风格的选择 Solution 3:隐式调用 体系结构风格的选择 回忆:事件系统的两种实现方式 Systems with separate dispatcher module Systems without a central dispatcher module 体系结构风格的选择 Solution 3:隐式调用 Two LineStorage modules –第一个LineStorage模块负责保存最初输入的lines –第二个LineStorage模块负责保存所有经过循环移位/排序后得到的 lines Input:负责从输入文件读取信息并保存在第一个LineStorage模块中 体系结构风格的选择 Solution 3:隐式调用 CircularShifter: 负责移位并将结果存储在第二个lineStorage模块中 Alphabetizer: 负责对移位结果进行排序 Output: 负责产生输出结果 Master control: 负责系统的全局控制) 体系结构风格的选择 事件分发策略 该案例中,使用观察者模式来处理事件 两个LineStorage模块被实现为“被观察者” – CircularShifter和Alphabetizer模块被实现为“观察者” –CircularShifter 是第一个 LineStorage 模块的观察者, 而 Alphabetizer 是第二个 LineStorage模块的观察者。 体系结构风格的选择 运行时事件相互作用 CircularShifter向第一个LineStorage模块注册,以表明兴趣 当有新行被加入到第一个LineStorage模块时,它将发出一个事件 CircularShifter模块接收到该事件 作为对该事件的响应,CircularShifter模块对新加入的行进行循环移位, 并将产生的结果写入第二个LineStorage模块中 体系结构风格的选择 运行时事件相互作用 Alphabetizer模块向第二个LineStorage模块注册,表明兴趣 当有新的循环移位行加入到第二个LineStorage模块时,它发出事件 Alphabetizer模块接收到该事件 作为对该事件的响应, Alphabetizer对这些循环移位行进行排序 体系结构风格的选择 Solution 3: Implicit Invocation Observerable Observer 体系结构风格的选择 Solution 3: Implicit Invocation 优点:功能扩展比较容易 –新模块可直接被加到系统中,只需将其注册到事件系统中即可 –数据通过接口访问,数据格式的变化不会影响其他部分 –各模块之间的调用隐式化,从而复用性提高 体系结构风格的选择 Solution 3: Implicit Invocation 难以控制各模块之间的处理次序 使用更多的存储空间 软件体系结构及应用 Solution 4: 管道-过滤器 体系结构风格的选择 Solution 4:管道-过滤器 使用管道-过滤器风格 –四个过滤器:输入、移位、排序、输出 –每个过滤器处理数据,然后将结果送至下一个过滤器 –控制机制是分布式的:只要有数据传入,过滤器即开始工作 –过滤器之间的数据共享被严格限制在管道传输 体系结构风格的选择 Solution 4: Pipes and Filters 11 体系结构风格的选择 Solution 4:管道-过滤器 Filters: – Input filter (“输入”过滤器:从数据源读取输入文件,解析格式,将行写入输 出管道) – CircularShifter filter (“循环移位”过滤器) – Alphabetizer filter (“排序”过滤器) – Outp

文档评论(0)

benzei244572 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档