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

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒...
    加油小杜阅读 4,012评论 0 1
  • 设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类...
    viva158阅读 4,112评论 0 1
  • 转载自 设计模式六大原则[http://www.uml.org.cn/sjms/201211023.asp#3] ...
    厨子阅读 4,751评论 2 5
  • 设计模式6大原则 转自:http://www.cnblogs.com/devinzhang/archive/201...
    犀利的小眼神阅读 3,161评论 0 1
  • 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 ...
    Jabir_Zhang阅读 3,800评论 0 3