第七讲对象设计内容摘要:

 以 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。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。