SOLID原则
# S单一职责原则
- 对于扩展,类应该是“开放”的;
- 对于修改,类则应是“封闭”的
# O开闭原则
- 对扩展开放,对修改关闭
# L里氏替换原则
- 严格遵守继承的规则
- 子类不能破坏父类的约定
- 先定 “规矩”(契约):父类不只是放通用代码,更要明确 “能做什么、不能做什么”(前置条件、后置条件、异常情况)。
- 子类 “守规矩”:子类可以扩展功能,但不能破坏父类的规矩 —— 比如父类允许的输入,子类不能拒绝;父类保证的结果,子类不能反悔。
- 替换无感知:使用父类的地方,换成任何子类,代码都不用改,结果都正确。
# I接口隔离原则
- 尽量缩小接口的范围,使得客户端的类不必实现其不需要的
行为
- 例如,Interface CloudService{A,B,C,D,E,F}
- 客户A需要接口CloudService的A,B,C功能,但是不需要E,F功能,那么我们就不要提供给客户E,F功能,
- 客户B需要E,F 功能,那么我们就不要提供给客户A,B,C功能,
- 客户C需要所有功能,那么我们可以把A,B,C,分离出来,作为一个接口,E,F 抽离出来,作为一个服务
- 注意: 不能滥用这种方式,如果不可细分了,就没必要再细分
# D依赖倒置原则
- 高层次的类不能依赖低层次的类
- 高层次和低层次应该依赖与抽象接口
- 抽象接口不应依赖于具体实现
- 具体实现应该依赖于抽象接口

编辑 (opens new window)
上次更新: 2026/03/11, 06:51:38