SOLID的原则是帮助我们设计更好扩展的,更易维护的软件。
S-Single responsibility单一职责
每个类应该只有一个唯一的理由被修改。
如果你的类有两种类型的用户。类中方法中可能会创建一些方法并重用,如果你为了一个用户的需求而改变了这些共用方法,可能会影响到另一个用户,最好为这两种类型的用户分成两个类。
O-Open closed principle 开闭原则
对修改关闭,对扩展开放。
不要修改旧代码来实现新的功能,而是通过添加新的代码来实现功能。
L-Lisp替换原则
在所有使用到父类的地方,使用子类对象进行替换应该不破坏其功能。
I-Interface separation 接口隔离
设计接口时,应该让其所有实现类都需要该接口的所有方法。这样它们才不会被接口中一些自己不需要的方法要求强制更改。
D-Dependency inversion 依赖反转
不要让高层方法依赖低层方法。高层和低层都应该依赖于抽象。而不是依赖于实现细节。
依赖抽象(能做什么),而不是怎么做(实现细节)。
总结
- 修改不应该到影响到其他用户
- 扩展而不是修改
- 扩展不应该破坏原来的行为
- 不应实现不必要的方法,而被强行改变
- 应该依赖于抽象而不是实现细节,更容易扩展