GRASP:基于职责设计对象

GRASP:基于职责设计对象

信息专家:知其责,行其事(具有承担职责的信息而拥有职责)
有时根据信息专家模式分配职责不一定合适,甚至会造成系统总体耦合程度高。例如:根据信息专家模式的建议:如果将模型类的信息写入数据库,那么由于该模型类本身就足够具有承担上述职责的信息(自己对自己了解更为清楚),那么将该模型类的信息写入数据库这个职责就分配给了这个模型类,这时模型类就不仅仅只关注纯应用逻辑,因此违背了面向对象中设计中“单一职责”,同时系统中许多其他的模型类也会承担这样的职责,造成了系统整体耦合度上升,冗余、难以重用等问题。为何会难以重用?因为一个类的耦合度高,重用这个类的时候必然会重用它依赖的类,先不谈因引入其他职责造成的冗余,根据部分对整体的影响,它依赖的类一发生改变,对这个被重用的类必然会造成很大是影响,更何况耦合度高依赖的类多造成的影响更大,这怎么重用?对吧。要想用必然要对系统进行重构。
创建者:创建某类的实例的类?
某?
b_=>a:包含,聚集、记录、频繁使用、有出事化数据;b就是创建者,对应的职责就是创建a类的实例。
低耦合:何为耦合?类之间的关系紧密程度称为耦合。更加专业的表达:对某元素与其他元素之间的连接、感知和依赖程度的度量-来自UML和模式应用(中文第三版)一个类
那么类之间的耦合关系如何体现呢?父类和子类或间接子类关系、一个类组合另一个类(通俗来说就是将另一个类的引用作为自己的成员变量,作为部分,属性)、一个类调用了另一个类的方法、一个类的方法包含对另一个类的引用(方法参数类型是另一个类或者返回值类型为另一个类)、一个类实现接口
如何实现低耦合:分配一个职责,使得保持低耦合度。
高内聚:
内聚是评价一个元素职责被关联和关注的强弱的尺度。
一个类中属性和方法配合完成与其紧密相关的职责并且只完成有限的功能,则称这个类是高内聚的。
如何达到低内聚:分解类,使得分解出来的类具有独立的职责,满足单一职责原则。
多态模式:
纯虚构模式:
控制器模式:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fire king

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值