单一职责原则的理解

单一职责原则
    又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。
从字面意义来理解.单一职责 就是一个类应该有且只有一个功能
 连起来理解应该就是。当某个职责发生改变 应该也只能影响某一个类 ,我们只需要修改其中一个类的代码就可以了。
当有多个职责逻辑发生改变。都会影响到某个类时。应该重构代码。
 
看起来蛮简单的,但实践起来 我们如何知道一个一个类的多个行为构建的是单个职责还是多个职责呢?
 
搜了一下 看看大家是怎么解决的。有一个解决方案是 参考
《Object Design: Roles, Responsibilies, and Collaborations》

该书提出了如下Role Stereotypes来区分职责:

 

  • Information holder – 该对象设计为存储对象,并提供对象信息给其它对象。

  • Structurer – 该对象设计为维护对象和信息之间的关系。

  • Service provider – 该对象设计为处理工作并提供服务给其它对象

  • Controller – 该对象设计为控制决策一系列负责的任务处理

  • Coordinator – 该对象不做任何决策处理工作,只是delegate工作到其它对象上

  • Interfacer – 该对象设计为在系统的各个部分转化信息(或请求)

 

  很明显 你需要理解你的类职能 是上述的那种。把不相干的剔除就可以了。但作为初学者而言,我表示虽然看起来很厉害的样子,但是实在是看不懂。

那么还有一个方法。职责的认定是比较主观的。一般 只要能自圆其说讲的通。 写出来的类和方法逻辑不复杂,就可以了。

反之 如果写出来的类 和方法逻辑太复杂 那么建议再抽象 拆分。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值