9个软件设计原则
flyfish
6个设计原则 (Design Principles)
1. Single Responsibility Principle (SRP, 单一职责原则) :
一个类只负责一个功能的实现,尽量保证一个类只有一个引起它变化的原因。
2. Open/Closed Principle (OCP, 开闭原则) :
软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即在不修改原有代码的情况下,通过扩展来实现变化。
3. Liskov Substitution Principle (LSP, 里氏替换原则) :
子类对象必须能够替换掉所有父类对象,确保子类在继承父类时,仍然保持父类的行为。
4. Interface Segregation Principle (ISP, 接口隔离原则) :
使用多个专门的接口,而不是一个总接口,确保接口只包含客户端所需要的方法。
5. Dependency Inversion Principle (DIP, 依赖倒置原则) :
高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。
6. Law of Demeter (迪米特法则) :
也称为最少知识原则,一个对象应对其他对象有最少的了解,只与直接的朋友交流。
3个设计原则 (Design Principles)
7. KISS (Keep It Simple, Stupid!, 保持简单) :
保持设计和实现的简单性,避免不必要的复杂性。
8. DRY (Don’t Repeat Yourself, 不重复自己) :
尽量减少代码重复,通过抽象和复用来实现共性部分的复用。
9. YAGNI (You Aren’t Gonna Need It, 你不需要它) :
不要提前实现未来可能需要的功能,只实现当前需要的功能。