SILID原则:
是面向对象编程和设计的重要原则,在我们编程的过程中是谨记的重点,所以对其有深刻了解是必须的。
《 Clean Code(代码整洁之道)》作者Robert C. Martin,书中就有关于这些原则的讲解和使用,推荐你好好读一下这本书,这本书封面上就有一句话“细节之中自有天地,整洁成就卓越代码。”
单一责任原则(SRP)
只有一个理由去修改一个类。例如,如果一个业务规则的改变会导致这个类的修改,那么,数据库、界面、报表格式或系统任何其它的部分的改变都不该迫使这个类做修改。
- Each responsibility should be a separate class, because each responsibility is an axis of change.
- A class should have one, and only one, reason to change.
- If a change to the business rules causes a class to change, then a change to the database schema, GUI, report format, or any other segment of the system should not force that class to change.
开发/关闭原则(OCP)
软件构成(类,模块,方法等)向扩展行为开放,向修改行为关闭。
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。
Liskov替换原则(LSP)
子类必须能够用来当作基类使用。如果类A继承类B,任何能使用A的地方,B也同样可以使用。
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系
1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象
2. 抽象不应该依赖于细节,细节应该依赖于抽象
接口分离原则(ISP)
一个类对另一个类的依赖应该限制在最小化的接口上。
The dependency of one class to another one should depend on the smallest possible interface.
反向依赖原则(DIP)
依赖抽象层(接口),而不是具体类。
参考张善友大神的讲解:https://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html