- 由 Robert C. Martin 在21世纪早期引入
- 单一功能、开闭原则、里氏替换、接口隔离以及依赖反转
- 容易进行软件维护和扩展系统
- 典型的应用是
测试驱动开发
单一职责原则
一个类或模块只实现一类类似的功能;
开闭原理
多使用接口[interface]和抽象类[abstract classs]实现一类扩展;
里氏替换原则
子类必须可以替代其父类;
- 如果父类具有接受父类类型参数的方法,它的子类应接受父类类型或子类类型作为参数。
- 如果父类返回父类类型,它的子类应返回父类类型或子类类型。
接口隔离原理
不应强迫客户端依赖于不使用的接口
依赖反转原理
依赖应该基于抽象
而不是具体。
高级模块不应依赖于低级模块,两者都应依赖抽象。
参考资料:
- https://zh.wikipedia.org/wiki/SOLID_(%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E8%AE%BE%E8%AE%A1)
- https://mp.weixin.qq.com/s/uBx_kUQuZ8lqjxafIC7k-w