1、Information Expert
在设计对象时。如果某个类能够在某方面具有完整的信息,足以实现某个责任,就将这个责任分配给这个类,意为信息专家。
2、Creator
有下列情况之一的,类A具有创建B类的责任:
1)A是B的聚合 2)A是B的容器 3)A有初始化B的数据 4)A记录B的实例 5)A频繁使用B
3、Low Coupling
设计中应当减少类之间的连接,Don't talk to strangers。下列情况让A、B产生耦合:
1)A具有一个B的属性 2)A调用B对象的方法 3)A的方法包括对B的引用(返回的类型或者参数是B) 4)A是B的子类,或者是B的实现。
4、High Cohesion
在设计中要努力分解类,使得分解出来的类具有独立的责任。提高类的重用性。
5、Controller
系统事件的接受与处理通常由一个高级类来代替,一个子系统会有很多控制器类,分别处理不同的事务。
6、Polymorphism
当相关的行为只是由于种类的不同时,可以分配相关的责任给指定的种类。
7、Pure Fabrication
为了解决高内聚与低耦合之间的矛盾,纯虚构模式得以应用。
8、Indirection
为了避免对象之间的直接耦合,可以将协调组件或服务的责任分配给中间对象。
9、Protected Variations
实质是开闭原则的体现(the Open Closed Principle,OCP),一个软件实体应当对扩展开放、对修改关闭。
GRASP模式
最新推荐文章于 2023-10-21 10:22:03 发布