王争《设计模式之美》学习笔记
如何理解单一职责原则(SRP)?
- SOLID原则中的S指的就是单一职责原则
- SRP:Single Responsibility Principle(A class or module should have a single reponsibility)
- class类,module模块:
- 模块是比类更加抽象得概念,类也是模块
- 模块是比类更粗粒度得代码块,一个模块中包含多个类 -
- 单一职责原则:一个类只负责完成一个职责或者功能
- 文中举例,订单和用户是两个独立的业务领域模型,那么就要拆分成两个粒度更细、功能更单一的:订单类和用户类
如何判断类的职责是否足够单一?
通过案例分析
- 先提到上文中的例子,并不是每次都能这么明显看出订单和用户毫不相干,有时职责是否单一,是很难拿捏的。
- 文中举例,UserInfo类记录用户信息,那么用户地址信息在UserInfo类中,是否满足单一职责呢?
- 如果这个用户地址,只是用来展示,那么可以在UserInfo类中。如果用户地址还用于物流系统中,那么就要拆分出来。
- 更进一步,如果社区做大,那么用户身份验证等信息也要从UserInfo类中拆分出来。
- 所以对类的职责是否单一,