设计语言读书程序员

面向对象编程思想(OOP)

2019-02-13  本文已影响44人  konishi5202

一、简介

本文将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,讲述面向对象编程思想的理解,梳理面向对象四大基本特性、七大设计原则和23种设计模式之间的关系。

软件开发中疑难问题:

软件开发中存在很多很多的问题,上面三个问题只是从程序开发和设计的角度看到的部分问题。要解决上面软件开发的问题,就要求我们编写(设计)的软件具有很好的可读性可维护性可扩展性,并且还要保证代码具有高内聚低耦合

二、四大基本特性

OOP(面向对象编程)的四大特性:抽象、封装、多态、继承

抽象:抽象是提取现实世界中某事物的关键特性,为该事物构建模型的过程。对同一事物中不同的需求下,需要提取的特性可能不一样。得到的抽象模型中一般包含:属性(数据)和操作(行为)。这个抽象模型我们称之为类,通过对类进行实例化得到具体的对象。

封装:封装可以使类具有独立性和隔离性,从而保证类的高内聚。只暴露给类外部或者子类必须的属性和操作。类封装的实现依赖类的修饰符(public、protected和private)。

继承:继承是对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有非私有特性(属性和操作)。这里指的继承包含类的继承和接口的实现。常见的继承方法有共有继承、私有继承、多重继承、多层继承。

多态:多态是中继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类的对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;就是类的多态性。多态还可分为编译时多态(静态多态性)和运行时多态(动态多态性)。另外类的函数重载、运算符重载,也可算为多态的特性。

三、七大设计原则

在面向对象四大基础特性之上,我们在做面向对象设计时,还需要遵循一些基本设计原则。

下面是这七大原则的详细描述:

另外还有如下几个常用的原则:

四、24种设计模式

在遵循上面这些面向对象设计原则的基础上,前辈们总结出一些解决不同问题场景的通用设计模式,以四人帮的gof23最为知名。24种设计模式(gol23+1):

  1. 简单工厂模式(不包含中gof23中)
  2. 工厂模式
  3. 抽象工厂模式
  4. 单例模式
  5. 原型模式
  6. 创建者模式
  1. 组合模式
  2. 装饰者模式
  3. 外观模式
  4. 适配器模式
  5. 代理模式
  6. 享元模式
  7. 桥接模式
  1. 观察者模式
  2. 策略模式
  3. 状态模式
  4. 中介模式
  5. 模版方法
  6. 命令模式
  7. 备忘录模式
  8. 访问者模式
  9. 解释器模式
  10. 迭代器模式
  11. 职责链模式

下面一张图来总结一下:


image

更多更详细的有关设计原则与设计模式的介绍,详见我的另外一篇博文:

Head First 设计模式——总结

上一篇下一篇

猜你喜欢

热点阅读