面向对象设计原则概述

面向对象设计原则为支持可维护性复用而诞生,这些原则包含在许多设计模式中,它们是从很多设计方案总结出的指导原则。

六大设计原则

  • 单一指责原则(Single Responsibility Principle - SRP) : 一个类只负责一个功能领域中相应职责。单一职责原则是实现高内聚、低耦合的指导方针,他是最简单但是最难应用的原则
  • 开放-封闭原则(Open Closed Principle - OCP) : 一个软件模块、一个由多个类组成的局部结构或一个独立的类应对扩展开放,而对修改关闭。
  • 里氏代换原则(Liskov Substitution Principle - LSP) : 所有引用基类(父类)的地方必须能透明的使用其子类,也就是说能够接受基类对象的地方必然能够接受子类对象
  • 依赖倒转原则(Dependency Inversion Principle - DIP) : 抽象不应依赖于细节,细节应当依赖于抽象。在大多数情况下,这三个设计原则会同时出现,开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段,它们相辅相成,相互补充,目标一致,只是分析问题时所站角度不同而已
  • 接口隔离原则(Interface Segregation Principle - ISP) : 使用多个专门的接口,而不使用单一的总接口。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干
  • 合成/聚合复用原则(Composite Reuse Principle - CRP) : 尽量使用对象组合,而不是通过继承达到复用的目的。如果两个类之间是“Has-A”的关系应使用组合或聚合,如果是“Is-A”关系可使用继承
  • 最少知识原则(Least Knowledge Principle - LKP) 又称迪米特法则 : 个软件实体应当尽可能少地与其他实体发生相互作用。思想类似中介者模式

面向对象设计模式