⼀般职责分配 (5+4个) (全掌握)


- 对象的行为职责:
- 行为:
- 自身执行一些行为,如创建对象或计算。
- 初始化其他对象中的动作。
- 控制和协调其他对象中的活动。
- 认知:
- 对私有封装数据的认知。
- 对相关对象的认知。
- 对其能够导出或计算的事物的认知。
- GRASP 一般职责分配软件模式
- Information Expert 信息专家(职责分配给专家)
- Creator 创建者(创建职责分配给谁)
- Controller 控制器(UI层到逻辑层间的控制中介)
- Low Coupling 低耦合(模块间影响弱)
- High Cohesion 高内聚(模块内职责高度相关)
- Polymorphism 多态性(将case变为子类并构建共用接口)
- Indirection 间接性(添加中介避免直接耦合)
- Pure Fabrication 纯虚构(虚构高层次的抽象类)
- Protected Variations 防止变异(封装不稳定部分并提供稳定接口)
-
Grasp & GOF
GRASP:核心思想是职责分配(Responsibility Assignment)
GoF:在具体实现中解决对象的耦合问题。它在GRASP分析的整体框架下,对一些具体的对象及其方法进行重新组织,解决对象耦合问题。
GRASP只是在对象分析的初期运用,而GoF的运用贯穿整个软件设计的始末,作用时间更长;
综合运用:






关于大富翁游戏的案例,请查看课本第19章
1.创建者,谁负责创建类?在Java和C++中对应调用new 或者对象构造函数。这个还比较容易理解,谁负责创建,则可以考虑将被创建者组合为创建者的一个属性(属性可见),或者创建者的某个函数中创建被创建者(局部可见)。