面向对象设计原则SOLID
SOLID原则是为了写出可复用、可扩展、高内聚、低耦合的代码。
- 单一职责原则(The Single Responsibility Principle,SRP)
- 开放关闭原则(The Open Closed Principle,OCP)
- 里氏替换原则(The Liskov Substitution Principle,LSP)
- 接口分离原则(The Interface Segregation Principle,ISP)
- 依赖倒置原则(The Dependency Inversion Principle,DIP)
单一职责原则
一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。不过在现实开发中,这个原则是最不可能遵守的,因为每个人对一个类的哪些功能算是同一类型的职责判断都不相同。
开放封闭原则
软件实体应该是可扩展,而不可修改的。也就是说,你写完一个类,要想添加功能,不能修改原有类,而是想办法扩展该类。有多种设计模式可以达到这一要求。
里氏替换原则
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-a关系。也就是说接口或父类出现的地方,实现接口的类或子类可以代入,这主要依赖于多态和继承。
接口分离原则
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。 不要提供一个大的接口包括所有功能,应该根据功能把这些接口分割,减少依赖。
依赖倒置原则
高层模块不应该依赖于低层模块,二者都应该依赖于抽象;
抽象不应该依赖于细节,细节应该依赖于抽象。