设计模式是一种通用的解决问题的经验,可以帮助我们设计出可重用、可维护和可扩展的软件。
在设计模式中,有八个常见的原则,它们是:
- 单一职责原则(SRP,Single Responsibility Principle):一个类应该只有一个引起变化的原因,即一个类只应该有一个职责,并且这个职责应该完全定义在这个类中。
- 开闭原则(OCP,Open-Closed Principle):软件实体应该对扩展开放,对修改关闭,即一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。
- 里氏替换原则(LSP,Liskov Substitution Principle):子类可以替换父类并且不影响程序的正确性,即一个子类应该可以完全替代其父类。
- 接口隔离原则(ISP,Interface Segregation Principle):客户端不应该依赖于它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。
- 依赖倒置原则(DIP,Dependency Inversion Principle):高层模块不应该依赖于底层模块,二者都应该依赖于抽象接口,即一个类的依赖应该建立在抽象类或者接口上。
- 最小知识原则(MKP,Least Knowledge Principle):一个类应该对自己需要的信息进行最小化了解,即一个类应该只关注其需要的信息,不应该了解无关的信息。
- 迪米特法则(LoD,Law of Demeter):一个对象应该对其他对象有最少的了解,即一个对象应该只与其直接的朋友交流,不应该与陌生人交流。
- 合成复用原则(CRp,Composite Reuse Principle):优先使用组合而不是继承,即一个类应该通过组合来实现其功能,而不是通过继承来实现。
这些原则都是通用的设计原则,可以帮助我们设计出更好的软件系统。在实际应用中,我们需要根据具体的场景和问题来选择合适的原则。