第七讲对象设计内容摘要:
以 GRASP作为工具,帮助掌握 OOD的基本知识并理解对象设计中的职责分配 职责、 UML 、 GRASP 在 UML中,绘制交互图是考虑这些职责(实现为方法)的时机 GRASP中的基本原则可以指导分配职责,当绘制 UML交互图以及编写代码时,就可以运用 GARSP原则了。 GRASP的模式 GRASP的 9个模式如下所示: 创建者( Creator) 控制器( Controller) 纯虚构( Pure Fabrication) 信息专家( Information Expert) 高内聚( High Cohesion) 间接性( Indirection) 低耦合( Low Coupling) 多态性( Polymorphism) 防止变异( Protected Variations) GRASP之一创建者 问题 : 谁有责任来创建类的实例。 创建者 名称:创建者( Creator) 问题:谁创建了 A。 解决方案(建议):如果以下条件之一为真时(越多越好),将创建类 A实例的职责分配给类 B: B”包含”或组成聚集了 A B记录 A B直接使用 A B具有 A的初始化数据,并且在创建 A时会将这些数据传递给 A 如果有一个以上的选项适用,通常首先聚集或包含 A的类 B 注意: B和 A指的是软件对象,而不是领域模型对象 技巧:依靠 LRG(低表示差异),来从领域模型中获得灵感 创建者 优点:支持低耦合,意味着它具有较低的维护依赖性和较高的复用性。 相关模式或原则: 低耦合 具体工厂和抽象工厂 整体 部分描述了定义聚合对象的模式,它支持对构件的封装 创建者 讨论 创建者模式指导我们分配那些与创建对象有关的职责。 创建者模式的基本意图是寻找在任何情况下都与被创建对象具有连接的创建者。 如此选择是为了保持低耦合。 有时,可以通过寻找具有初始化数据的类来确定创建者,这些数据将在创建过程中传递给被创建者 创建者 禁忌 对象的创建常常具有相当的复杂性,例如为了性能而使用回收的实例,基于某些外部特性值有条件地创建一个或一族类的实例,等等。 在这些情况下,最好的方法是把创建职责委派给称为具体工厂( Concrete Factory)或抽象工厂( Abstract Factory)的辅助类,而不是使用创建者所建议的类 GRASP之二信息专家 名称:信息专家( Information Expert) 问题:给对象分配职责的基本原则是什么。 解决方案:把职责分配给具有完成该职责所需信息的那个类 信息专家 示例 Sale time Sales LineItem quantity Product Description d。第七讲对象设计
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第七课关注经济发展第二框
只有鼓励一部分人、一部分地区通过诚实劳动和合法经营 先富起来。 同 富 不 同 路 通过 先富 者带动和帮助 后富 者,才能逐步实现共同富裕。 先富帮后富 共奔富 裕 路 强调: ①走向富裕之路的 前提条件 是:诚实劳动,合法经营。 ②实现共同富裕,要 反对 平均主义,贯彻 按劳分配原则;要 防止 人们之间的收入差距扩大,出现两极分化 . 分析几组关系 : 先富 共富 共同富裕 同步富裕
第三十五章氨基糖苷类抗生素
【 临床应用 】 【 不良反应 】 1. 对第八对脑神经的损害 原因: 在内耳外淋巴液蓄积 , 引起前庭功能障碍和耳蜗神经损害。 前庭功能障碍表现: 眩晕 、 恶心 、 呕吐 、 平衡失调 耳蜗神经损害表现: 耳鸣 、 听力减退 、 甚至耳聋 2. 肾脏损害 与剂量 、 病人耐受性相关。 由于药物主要经肾排 , 尿药浓度高 , 并在肾蓄积 , 损害肾小管上皮细胞 , 出现蛋白尿 、 管型尿
第七章集成运算放大器的应用
路中的 Rf用二极管或三极管代替 , 即可组成对数运算电路 , 如图 7 15所示。 TD Uu TDUuSD eIi 第七章 集成运算放大器的应用 uO+- ∞+i1uI RR ′+ -uDVDiD图 7 – 15 基本对数运算电路 第七章 集成运算放大器的应用 TDUuSD eIIi 1当二极管正向导通时 由于“ ”端是虚地, 所以 Rui 11 DO uu )0(1