# 单一职责原则

> 在面向对象编程领域中，单一功能原则（Single responsibility principle）规定每个类都应该有一个单一的功能，并且该功能应该由这个类完全封装起来。所有它的（这个类的）服务都应该严密的和该功能平行（功能平行，意味着没有依赖）。 这个术语由罗伯特·C·马丁（Robert Cecil Martin）在他的《敏捷软件开发，原则，模式和实践》一书中的一篇名为〈面向对象设计原则〉的文章中给出。 马丁表述该原则是基于的《结构化分析和系统规格》一书中的内聚原则（Cohesion）上。 马丁把功能（职责）定义为：“改变的原因”，并且总结出一个类或者模块应该有且只有一个改变的原因。如果你…

- ID: m05104
- 分类: create
- 领域: 设计思维

## 定义

一个模块（或类/人）应该有且只有一个改变的理由。即它只负责一件事，并把这件事做好。 脚手架作用： 专注的力量。在团队分工中，不要设置"全能打杂"的岗位。让每个人只有一个核心KPI。职责越单一，责任越清晰，效率越高。多重职责必然导致平庸和推诿。

## 机制

一个模块/类/角色只应承担一个导致它变更的职责，使变更原因单一、耦合降低、更易理解与维护；多重职责会相互牵扯引发意外修改。

## 练习

①列出模块可能的变更原因；②若多于一个，拆分类/职责；③让每个单元只对一个角色负责；④在团队中映射为单一KPI/岗位。

## 脚手架用法

专注的力量。在团队分工中，不要设置"全能打杂"的岗位。让每个人只有一个核心KPI。职责越单一，责任越清晰，效率越高。多重职责必然导致平庸和推诿。

[阅读网页](https://thinkingmodels.site/entries/detail/m05104)
