设计模式原则-单一职责原则

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

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

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

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

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

你可能感兴趣的:(设计模式原则-单一职责原则)