面向对象设计七大原则
图:北京航空航天大学
Guderian出品
AKA:设计模式七大原则
1. 单一职责原则
- SRP,Single Responsibility Principle
- 每一个对象有且只有一个职责,从而实现”高内聚、低耦合“
- 防止一个类实现多个功能,改变一个功能后影响其他功能的正常运作
2. 开放-封闭原则
- OCP,Open-Closed Principle
- 对拓展开放、对修改关闭
- 需要对程序进行拓展的时候,不能修改原有代码,只能在原有代码的基础上添加
3. 李氏替换原则
- LSP,Liskov Substitution Principle
- 任何基类出现的地方,一定可以用派生类代替
- 派生类可以拓展基类的功能,但不能改变基类的功能
4. 依赖倒置原则
- DIP,Dependence Inversion Principle
- 实现依赖于抽象,而抽象不依赖于实现
- 解除高层组件对低层组件的依赖,是实现开闭原则的重要基础
5. 接口隔离原则
- ISP,Interface Segregation Principle
- 一个类对另外一个类的依赖性应当是建立在最小的接口上
- 在特定的使用场合给特定用户提供其需要的方法、屏蔽其不需要的方法
6. 组合重用原则
- CRP, Composite Reuse Principle,
- 尽量使用组合,尽量不用继承
- 在新的对象里面使用已有的对象,使之成为新的对象的一部分
7. 迪米特原则
- LoD,Law of Demeter
- 一个对象应该对其他对象又尽可能少的了解
- 尽量降低成员的访问权限,提供访问器而不公开成员变量
注:
C++
中只有抽象类的概念,JAVA
中既有抽象类的概念,又有接口的概念。