基础知识:面向对象设计原则

类的设计原则有七个,包括:开闭原则、里氏代换原则、迪米特原则、单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则。

七大原则之间的关系七大原则之间并不是相互孤立的,彼此间存在着一定关联,一个可以是另一个原则的加强或是基础。违反其中的某一个,可能同时违反了其余的原则。
开闭原则是面向对象的可复用设计的基石。其他设计原则是实现开闭原则的手段和工具。

一般地,可以把这七个原则分成了以下两个部分:

  1. 设计目标:开闭原则、里氏代换原则、迪米特原则
  2. 设计方法:单一职责原则、接口分隔原则、依赖倒置原则、组合/聚合复用原则
个人理解:
  1. 开闭原则: 只增不改。
  2. 里氏代换原则:替父从军。
  3. 迪米特原则:不要和陌生人说话。
  4. 单一职责原则:只有一个引起它变化的原因。
  5. 接口分隔原则:满足单一职责原则的基础上,再分隔。
  6. 依赖倒置原则:依赖抽象(向上)而非具体(向下)
  7. 组合/聚合复用原则:用关联代替继承。
单一职责和接口隔离区别:

单一职责原则:每一个对象仅有一个单独的职责,即仅有一个引起变化的原因。
接口隔离原则:一个接口仅提供一种对外的功能,不应该把所有的操作都封装到一个接口中。
乍一看,有点相似,但是存在以下关系:单一职责注重业务逻辑的划分,面向一个业务存在多个需要实现的方法。

例如学生类,包含了学生的个人信息(姓名、性别、身高、体重、血型、党团关系等),这些特性都面向学生这个对象,满足单一职责原则。但是假如学校组织党日活动,仅关注党团关系是党员的那些学生,此时学校对学生类的操作就不满足接口隔离原则。需要把学生类再进一步划分。

所以说单一职责原则是面向对象的第一个设计原则,接口隔离原则是在满足单一职责原则的基础上,为了“高内聚低耦合”所采取的进一步设计范式。

你可能感兴趣的:(基础知识:面向对象设计原则)