- 单一职责原则(SRP:SIngle PesponsibilityPrinciple)
- 避免相同职责分散到不同类中
- 避免一个类承担太多职责(一个类只专心做一件事)
- 减少类之间的耦合,职责单一,需求改变时,只需改变一个类。
- 提高类的复用性
- 接口隔离原则(ISP:Interface Segregation Principle)
- 强调接口对客户端的承诺越少越好,并且做到专一。
- 客户端程序不应该一来它不需要的接口方法(功能),细化接口,保证其纯洁性。
- 通过多重继承实现对不同接口的组合。
- 开放-封闭原则(OCP:Open Close Principle)
- Open:模块的行为必须是开放的、支持扩展的。
- Close:在对模块的功能进行扩展时,不应该影响或大规模地影响已有的程序模块。
- 总结:一个模块在扩展性方面应该是开放的,在更改性方面应该是封闭的。
- (里氏)替换原则(LSP:Liskov Substitution Principle)
- 子类必须能够替换掉他们的父类、并出现在父类能够出现的任何地方。
- 依赖倒置原则(DIP:Depend ence Inversion Principle)
- 将依赖关系倒置为依赖接口,上层模块不应依赖于下层模块,它们共同依赖于一个抽象。
- 抽象不能依赖于具体,具体应该依赖于抽象。
- 每个较高层次的类都会为所需要的服务提出一个接口声明,而较低层次的类实现这个接口。
- 每个较高层次的类都会通过抽象接口来使用服务
- 控制反转(IOC:Inversion of Control)
- 一种软件设计模式
- 为相互依赖的组件提供抽象,将依赖(下层模块)对象的获得该交给第三方(系统)来控制。即依赖对象不在依赖模块类中直接通过new来获取。
软件设计原则:
它只会告诉我们对错,不会告诉我们怎样做。
软件设计模式:
模式是在软件开发过程中总结得出的一些可重用的解决方案,可以解决实际问题。