OOP编程原则

oop-面向对象原则,实现软件开发可重用性

Posted by Zicon on March 11, 2017

“面向对象的概论”

前言

编程开发的原则分为:

PBP(基于过程):函数、域与生命周期的概念、函数重载、函数模板、异常处理、范型算法。

OBP(基于对象):类(接口)、类的生命周期、类模板。

OOP(面向对象):继承、多态。

三个概念步步深入,后者包括前者。其目的是实现软件开发的可重用性,解决软件危机(软件工程思想未引入之前)。但是OOP不可避免设计原则的发展与设计模式的产生,这是OOP独具的特征决定的。


正文

OOP的方法论

  • 代码重用(通常用继承和聚合实现)
  • 低耦合(模块与模块之间,类与类之间依赖程度低)
  • 高内聚(模块或类内部依赖程度高,负责处理相关的工作)
  • 易扩充(在不改变原有代码,或改变很小的情况下增加功能)
  • 易维护(代码结构清晰,容易管理和修改代码)

OOP的设计原则

  • 开放封闭原则(OCP,Open-Closed Principle):对扩展开放、对修改封闭
  • 依赖倒置原则(DIP,Dependency-Inversion Principles):高层模块不依赖底层模块,两者都依赖抽象;抽象不依赖于具体实现细节,细节依赖于抽象
  • 里氏替换原则(LSP,Liskov Substitution Principle):当子类能够替换掉基类,软件的功能不会受到影响时,基类才真正被复用
  • 接口隔离原则(ISP,Interface Insolation Principle):接口功能单一,避免接口污染
  • 单一职责原则(SRP,Single Resposibility Principle):一个类应该仅有一个引起他变化的原因
  • 合成/聚合复用原则(CARP,Composite/Aggregate Reuse Principle):尽量使用合成/聚合,尽量不要使用继承
  • 迪米特法则(LoD ,Law of Demeter):对象只和最直接的类交互,对第三方可通过转达交互,降低对象间的耦合度

后记

OOP编程原则与设计模式密切相关,因此,在详细介绍GoF23种设计模式之前,Zicon认为要先简单的了解一下OOP原则。