GRASP模式

        GRASP模式,这个模式出自《UML和模式应用》,GRASP是General Responsibility Assignment Software Pattern(通用责任分配软件模式)的缩写,在这本书里面在分析系统阶段主要是建立概念模型,概念模型是从真实世界转换到计算机世界的过渡模型,根据用户的需求,如果是在XP里面抽取出Use Story里面的名词,在RUP里面抽取出Use Case里面的名词根据一定的原则来建立相应的类,这些类只是记录一些属性信息和关联信息。到了设计阶段,有了概念模型之后,然后根据基于职责设计类,即RDD(职责驱动开发),RDD是思考OO软件设计的一般性隐喻,把软件对象想象成具有某种职责的人,他要与其他人协作以完成工作。RDD使我们把OO设计看作是有职责对象进行协作的共同体,基于这种思想作者提出了GRASP分配职责的几个原则。GRASP模式可以用来设计类,这个模式包括9个基本原则:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。个人觉得最比较具体的是专家模式,就是根据自身数据资源也就是属性来分配给该类相应的职责(方法)。还有一个GoF设计模式,个人觉得GRASP比GoF层次要高些,先采用GRASP模式指导怎么分配类的职责,如何分配,从而来设计各个类,解决类之间如何交互, 如何设计合理的问题,与具体的问题无关,而GoF是解决具体的某个问题的,比如GRASP有个创建者模式,GoF也有,GRASP模式指导该由谁来创建,即职责分配给谁,怎么分配,而GoF指导解决具体问题中的怎样创建问题,使用工厂模式,Build模式等等。在国内讨论GRASP模式比较少,GoF比较多,看了这方面的文章后觉得对面向对象方面的思考更深了一步。另外Martin Fowler的三层视角理论:概念视角,规约视角,实现视角我也觉得很不错,有很强的概括性。这些都教我如何和怎样采用面向对象来思考问题,虽然在具体的项目中无法建立很多的UML图,但是可以形成相应的概念,在大脑里面使用这些概念对整个系统走一遍分析,设计的过程,从来设计出真正的面向对象软件,而不是仅仅使用了面向对象语言的软件。

 

转自:http://blog.csdn.net/hbhhww/archive/2008/08/20/2802229.aspx

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值