Skip to content

API/Service SOLID 原则

单一指责原则 Single Responsibility Principle

概述

单一职责原则保证了每个服务和接口对于领域和资源的专注度,可以更好地降低逻辑和实现的复杂度,并且通过粒度更加细致的划分,方便客户端通过组合接口来实现更多的功能。

  • 服务级别:每一个服务应该专注于其对应的domain,同时服务接口应该尽可能的做简单的逻辑,通过接口间组合来实现复用。
  • 接口级别:每一个接口应该只负责一种资源或者一种类型的信息。

实例

实例:数据展示表的列表视图和筛选器部分。

  • 筛选器作为通过数据统计出来的查询条件,需要通过全量查询和摘要来拿到整个的结果
  • 列表视图作为数据展示部分,需要分页、懒加载和可配置列展示等操作

所以虽然一个列表页这种简单的视图展示,也因为其展示内容的原因需要分开的API来处理。
通过这样把两个API拆分,每个API都有自己对应的指责,就可以进一步地在其上做增强和优化:

  • 筛选器:根据数据的变化频率和数据量做优化和缓存
  • 列表视图:数据的分页、预加载和条件筛选

开闭原则 Open-Close Principle

概述

对扩展开放,对修改封闭。

  • 服务级别:服务实现应该对接口扩展开放,对破坏约束封闭。
  • 接口级别:TBD

实例

里氏替换原则 Liskov Substitution Principle

概述

  • 服务级别:服务切换不同的实现,应该保持接口的一致。同时任何被替换实现的接口不应该有行为上的变动。
  • 接口级别:TBD

实例

接口隔离原则 Interface Segregation Principle

概述

  • 服务级别:服务间应该只通过接口相互依赖,实现之间相互隔离,独立部署。
  • 接口级别:TBD

实例

依赖倒置原则 Dependency Inversion Principle

概述

  • 服务级别:服务间不应该通过部署实例直接相互依赖,而是通过接口和服务发现机制。
  • 接口级别:TBD

实例