General responsibility assignment software patterns 简称GRASP 翻译是通用职责分配软件模式,不同于GOF的23中设计模式那么具体到场景和解决方案。它是通用概括讲解如何设计类和对象之间的关系。和如何给类和对象分配对应的职责。其实面向对象最难、最核心和最有争议的的点就是如何设计类和对象的职责,类和对象之间的怎么联系。
其中一共是9个设计原则,控制器,创造者,信息专家,高内聚、低耦合、多态,受保护变化,中介和纯虚构。
1.控制器模式:
控制器类是将接受事件并且将处理这个事件的责任分配给可以处理这个事件的对象,当然这里要参数交互要用接口或者是抽象类。这个控制类的职责一定是单一的,只能有分配、和协调的工作。这种大的模式比如说MVC模式中的控制器,将请求分配给处理者,GOF里面的模式比说是命令模式就是非常典型的控制模式。这种模式关键的两点一个是,接口要开发,要抽象。事件和处理者之间的联系的这个配置一定要简单,并且低耦合。
2.创造者模式:
一个类创建了另一个类,这样这两个类就产生了依赖关系。一般来说就是以下几种情况需要有创建者模式,
(1)B对象的实