GRASP 设计模式
GRASP 设计模式
创建者Creator
信息专家Information Expert
低耦合Low Coupling
控制器Controller
高内聚High Cohesion
多态性Polymorphism
纯虚构Pure Fabrication
间接性Indirection
防止变异Protected Variations
1. 创建者(Creator)
问题:谁应该负责创建一个类的新实例?
解决方案:如果满足以下条件之一,则将创建类A实例的职责交给类B(B创建A)。
B包含或组成聚集A
B记录A
B直接使用A
B具有A的初始化数据,并在创建A时,将这些数据传给A
如果有多个类B满足以上条件,一般首选,包含或组成聚集类A的B。
优点:
支持低耦合, 因为A本身对于其创建者B就是可见的(即本身就有关联)所以不会增加耦合性
相关模式:
低耦合
具体工厂和抽象工厂
整体-部分
2. 信息专家(Information Expert)
问题:给对象分配职责的基本原则是什么?
解决方案:将职责分配给信息专家(如果一个类拥有完成某个职责的所有信息,那么他就是这个职责的信息专家)。完成一个职责往往需要不同类中的信息,所以这些局部的信息专家可能需要协作来完成一个职责。
对象的职责:
行为职责:
自身执行一些