第7讲. 模式与对象设计课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
讨论 可以使用同一个控制类来处理一个用例中的所有系统事件以维护控制器中有关用例状态的信息 一般,控制器将需要完成的工作分配给其他对象;它负责协调或者控制活动,自己不做太多工作。 精品 方面控制器(Facade Controller) 它代表了整个系统,设备或一个子系统 它提供了从UI层往其他层的服务调用的主要入口 对整个物理单元的抽象,例如Register, TelecommSwitch, Phone 或 Robot 代表了整个软件系统的类,例如POSSystem 设计者选择用来表示整个系统,子系统的其他概念,例如如果是一个游戏软件,选择ChessGame 精品 用例控制器 对每一个用例设置一个单独的控制器 这是支持系统的人工结构 例如,在NextGen应用中,例如Process Sale 等用例可以与 ProcessSaleHandler 类关联 什么时候我们选择用例控制器? 当有太多的系统事件并设计不同的过程,用例控制器是一个好的选择。它将处理它们的任务分配给那些可管理的单独的类,也提供了一个获知和推理目前进行中的场景的当前状态的基础。 精品 Register ... endSale() enterItem() makeNewSale() makePayment() makeNewReturn() enterReturnItem() . . . System endSale() enterItem() makeNewSale() makePayment() makeNewReturn() enterReturnItem() . . . system operations discovered during system behavior analysis allocation of system operations during design, using one facade controller ProcessSale Handler ... endSale() enterItem() makeNewSale() makePayment() System endSale() enterItem() makeNewSale() makePayment() enterReturnItem() makeNewReturn() . . . allocation of system operations during design, using several use case controllers HandleReturns Handler ... enterReturnItem() makeNewReturn() . . . 精品 在统一过程中: 边界对象(Boundary Objects) 是接口的抽象 实体对象(Entity Objects) 是独立于应用(经常是持久性)领域软件对象 控制对象(Control Objects) 是控制器模式中描述的用例处理器 精品 优点 提高了重用的可能性,提供了可插拔的接口-它保证了接口层不处理应用逻辑 对用例的状态进行推理 保证系统操作以合法的顺序发生 精品 问题和解决方案 “浮肿的”控制器(Bloated Controllers) 如果设计得不合理,控制类内聚性不强-不聚焦并处理了太多领域的责任 症兆 一个控制类接收所有的系统事件 控制类自己处理了完成系统事件所需要的太多任务 控制器有太多的属性并维持了系统或领域的信息 精品 接口层并不处理系统事件 精品 Cashier :SaleJFrame actionPerformed( actionEvent ) :Sale 1: makeLineItem(itemID, qty) Interface Layer Domain Layer 对于接口层的对象而言,例如Window参与决定如何处理领域过程 业务逻辑是嵌入在表现层中的,而该层并不十分有用 SaleJFrame 不能发送该消息 presses button 精品 4. 使用GRASP模式实现Use-Case 4.1目标 设计用例的实现 运用GRASP模式给类分配责任 使用UML交互图标记来表示对象设计 责任的分配和协作的设计是非常重要的,并且是设计,画图或者编程中具有创新性的步骤 我们将试图说明软件设计是工程而不是艺术 精品 4.2 用例实现 用例实现 描述了一个特定的用例在设计模型中是如何通过协作的对象来实现的. UML交互图是一种表示用例实现的通用的语言 精品 精品 协同图(Collaboration Diagrams) 可以用于显示用例实现 :Register enterItem() :Register endSale() :Register makePayme

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档