GRASP(General Responsibility Assignment Software Pattern)通用职责软件分配模式
基于面向对象, 用于逻辑表示, 是实现代码架构的分配方案.
遵循原则是为了 让代码更加高效、灵活
一共有八大原则--高内聚低耦合 信息专家 创建者 控制器 多态 纯虚构模式 间接性 防止变异
1. 高内聚、低耦合(High Cohesion/Low Coupling)
高内聚 (内聚指: 类中方法和方法之间的职责相关性)
目的: 保持类或模块是有重点的、可理解的、 可管理的
低耦合 (耦合指: 两个类或模块之间联系的紧密程度)
目的: 降低因为一个类的变化而对另一个类产生的影响
2. 信息专家(Information Expert)
原则: 把职责分配给具有该职责信息的那个类, 来实现高内聚
3. 创建者(Creator)
原则: 如果B使用的了A,那么就应该由B来创建A,而不是由其他的类来创建.
4. 控制器(Controller)
原则: 分离显示和控制. 把系统事件的处理职责分配给控制器类, 交互的处理职责分配给显示类. MVC中的C
5. 多态(Polymorphism)
原则: 通过多态操作把接口内行为的定义职责分配给发生该行为的类. 父类定义, 子类重写
6. 纯虚构模式(Pure Fabrication)
原则: 通过对类的分解来实现类的重用. 尽量用接口定义动作, 类实现接口
7. 间接性(Indirection)
原则: 两个类相互影响时, 分配职责给一个中间对象来协调操作,使得它们不直接耦合. MVC中的V
8. 防止变异(Protected Variation)
原则: 在不修改原有元素(类、模块、子系统或系统)的前提下扩展元素的功能. 装饰器