在对象设计中应用GRASP

GRASP是通用职责分配软件模式(General Responsibility Assignment Software Patterns)。这些原则对于成功面向对象软件设计至关重要。

          GRASP的9个模式,分别为:创建者(Creator)、信息专家(Information Expert)、低耦合(Low Coupling)、高内聚(High Cohesion)、控制器(Controller)、多态(Polymorphism)、纯虚构(Pure Fabrication)、间接性(Indirection) 防变异(Protected Variations)

           1)创建者:如果具有以下条件之一(越多越好)为真时,创建A实例的职责分配给类B:

                                 1、B “包含”或组成聚集A。

                                  2、B记录A。

                                  3、B直接使用A。

                                  4、B具有A的初始化数据,并且在创建A时会将这些数据传递给A。

                  创建者模式建议:1)封装的容器或记录的容器是创建其所容纳或记录的事物的很好的候选者。

                                                   2)可以通过寻找初始化数据的类来确定创建者。

                                     禁忌 :对象的创建具有相当的复杂性,例如为了性能而使用回收的实例,基于某些外部特性值有条件地创建一个或一族类的实例,等等。这些情况下,最好的方法是把创建的职责委派给称为具体工厂(Concrete Factory)或抽象工厂(Absract Factory)的辅助类,而不是使用创建者模式所建议的类。

                                     优点:支持低耦合,这意味着它具有较低的维护依赖性和较高的复用性。

           2)信息专家(或专家)

                        把职责分配给信息专家,它具有实现这个职责所必须的信息。

                        禁忌:在某些情况下,专家莫不是建议的方案也许并不合适,通常这是由于耦合和内聚问题产生的。支持主要关注的分离可以改善设计中的耦合和内聚。

                       优点:

                          

 

 

你可能感兴趣的:(在对象设计中应用GRASP)