主要观点:SOLID 是面向对象软件开发中最受欢迎的设计原则之一,包括单一职责原则等五个原则,本文重点介绍单一职责原则。
关键信息:
- 单一职责原则即一个类应该有且只有一个改变的原因。
- 好处包括使软件更易实现、防止未来更改的意外副作用,更易理解、减少 bug 等。
- 可通过问“类/组件/微服务的职责是什么”来验证设计是否遵循该原则。
- 开源软件和设计良好的应用中有很多单一职责原则的例子,如 Java 持久化 API(JPA)规范、JPA 的 EntityManager、AttributeConverter 和 Spring Data Repository 等。
重要细节: - 随着时间需求会变化,类的职责越多越需常更改,影响依赖它的类,导致更改更复杂、副作用多、工作量大,所以应保证每个类只有一个职责。
- JPA 规范定义了标准化管理关系数据库中数据的方式,其职责单一,其他功能由其他规范或框架提供。
- JPA 的 EntityManager 负责管理与当前持久化上下文相关的实体,不实现业务逻辑等。
- AttributeConverter 负责将域模型中的数据类型转换为持久化提供程序可存储在数据库中的类型,代码简单易理解。
- Spring Data Repository 实现了存储库模式,提供常见操作,每个存储库只负责特定实体的操作,易于理解和实现。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。