- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
职责分配与协作设计(3) 协作设计(控制风格)的比较和场景判定(4) 对给定场景和要求的控制风格,根据GRASP模式,判断特定职责的分配(5) 根据分析类图和体系结构模块接口,建立基本的设计类图协作设计的风格集中式,委托式和分布式可能考比较也可能考场景判定ü??分散式:所有的系统行为逻辑分散在整个对象协作构成的网络中。很多组件都拥有一些数据和一些职责。控制流很难理解。组件独立并不能完成很多工作,增加了耦合。信息隐藏困难。内聚性差。几乎不满足模块化的原则。?ü??集中式:一些控制器集中控制者系统的行为逻辑。容易找到决策是在哪里制定的;容易知道决策是如何被制定的,并易于对决策制定的过程做出变化;控制器可能非常复杂庞大,难以理解;控制器可能把其他组件是为数据存储库:增加耦合,破坏信息隐藏。?ü??委托式:决策被分布在整个对象协作构成的网络中,有几个控制器做主要的决策。控制器与少数的组件进行关联,降低耦合;信息隐藏做的更好一些;程序很容易进行分层;判断特定职责的分配对给定场景和要求的控制风格,根据GRASP模式,判断特定职责的分配GRASP模式ü??专家模式问题:面向对象设计中职责分配最基本的原则是什么?【职责应该分配给谁?】解决:把职责分配给拥有完成该职责所必须的信息的类。效果:维护信息的封装降低耦合提高内聚会导致一个类过于复杂?ü??创建者模式问题:将创建对象的职责分配给谁?解决:在决定哪个类负责对象的创建时,考虑潜在的创建者类和被创建的类之间的关系。?B负责创建A,如果:B由A聚合而成;B包含A;(^B包含一个属性为A)B中创建A供来使用;B包含创建A的初始化信息。?效果:通过让一个类负责创建它需要引用的对象,来降低耦合。自己使用,自己创建,可以不依赖与其他类为自己创建。?ü??低耦合模式问题:如何降低依赖,提高复用?解决:通过职责分配降低耦合。?效果:变化的部分可以被锁定。容易理解,容易复用。?ü??高内聚模式问题:如何维护复杂的管理?解决:通过职责分配提高内聚。?效果:类易于维护,易于理解,通常支持低耦合,支持复用。?ü??控制者模式问题:处理系统外部事件的职责应该如何分配?解决:如果系统从外部或图形化界面接收事件,那么添加一个响应事件的类来与处理事件的类解耦。?效果:增加了复用性。使用控制器能够使得外部的事件与内部的事件处理相独立,不用考虑互相的类型或行为。能够合理的解释用例的状态。确保了系统操作发生的逻辑顺序,使用例中活动或处理的状态得到合理的解释。?ü??多态模式问题:如何处理类型的可变性?解决:当行为是根据对象的类型变化时,使用多态的方法调用来选择行为,而不是利用if-else判断语句。?ü??纯虚构模式问题:如何不违反高内聚、低耦合原则?解决:把一组高内聚的职责分配给一个纯虚构的类,来支持高内聚、低耦合、易复用。?效果:高内聚:关系紧密的相关任务构成的职责被分配到一个类中。提高复用性。?ü??间接模式问题:如何避免直接耦合?如何解耦?解决:把职责分配给负责维护组件交互或服务的中介者,避免直接耦合。例如:发布订阅风格或观察者模式。?ü??Protected Variations保护可变性问题:如何设计对象、子系统或系统以保持变化性不会影响到其他元素?解决:鉴别出可能发生变化或不稳定的元素,为他们创建一个稳定的接口。方法:n Information Hidingn Data driven (configuration files)n Service lookup (runtime registration)n Interpreter-Driven(generalize module)n Reflective or Meta-Level Designs (Component replace)n Uniform Access (adherence to protocols)n LSP (polymorphism)n Law of Demeter (restrict communication paths)职责分配注意事项确保对象的职责是紧密的:模块化。保持对象的行为与它拥有的信息一致。确保对象没有做太多事情:单一职责原则。职责不要重复:信息隐藏。把一个复杂的职责进行分解。必考
您可能关注的文档
最近下载
- 2025-2026年国家公务员考试《申论》真题及参考答案.doc VIP
- 川教版(2019)初中信息科技Python编程复习单.docx VIP
- DTII(A)带式输送机计算书(带表1-4)Ver1.2(95版)(2012.12.18).xls VIP
- 医疗器械经营财务管理培训.pptx VIP
- 麻醉前肺功能评估.ppt VIP
- 新课标体育与健康水平二教案.pdf VIP
- 贵州教育出版社小学五年级上册综合实践教案.pdf VIP
- 博物馆学概论课件:博物馆藏品管理历史、藏品意义与藏品研究.pptx VIP
- 2025高中政治部编版选择性必修二《法律与生活》必背法律条文.pdf VIP
- SEO培训课件教学课件.pptx VIP
文档评论(0)