如何理解单一职责原则?

“一个类仅有一个职责”或者“引起类变化的只有一个原因”,这就是单一职责原理。


类只因一个原因而变化,这仿佛是一种新的类定义方式。当接触面向对象编程时,试图把一个类对比为一个事物,事物具备的功能都是这个类的操作。比如,一根尺子,既可以用来打学生手板,也可以用来丈量布匹。而在单一职责原理下,尺子的两个功能就是引起这个类变化的两个原因,就应该写成两个类。


如果混在一起写,在修改一个职责的时候,可能会影响到另一个职责。当另一个类只使用其中一个职责的时候,另一不会用到的职责会消耗掉更多的资源。


举个Bob大叔给的例子,电话的interface有3个。其中dial和hangup是负责语音通信的,而chat是负责数据业务的。应该把这两个可能单独存在的职责分开。如果一个电话同时具备两个职责,可以让它实现两个接口。



联想到TDD,TDD总是从需求着手,为一条需求写测试代码,然后写产品代码。一条需求可以理解为一个变化,这样极大促成了第一个写出来的类是符合单一职责原则。能较为有效的避免产生多职责类。


SOLID 五项原则介绍

 如何理解单一职责原则?

 如何理解接口隔离原则?

 如何理解开放封闭原则?

 如何理解里氏替换原则?

 如何理解依赖倒置原则?



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值