“面向对象的概论”
前言
编程开发的原则分为:
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原则。