【面向对象】——重新认识面向对象

一、What——什么是面向对象

从本质上来看,面向对象是一种编程思想,是程序员解决问题的一种思维方式,也就是我们所说的编程范式。

二、Where——面向对象的由来

我们的程序是为了解决现实世界中的问题而存在的,它是把现实中的世界通过建模的方式模拟到计算机中来运行。随着科技的进步,人们看待世界的方式会发生变化,程序员模拟世界的思维方式也会发生变化。

编程范式的发展

非结构化编程——>结构化编程——>面向对象编程——>多范式融合

编程范式的发展就是一个逐步远离计算机,向着待解决问题的领域靠近的过程,它存在的意义就在于解决领域问题。每种编程范式都各有优缺点,应用于不同的场景来解决问题。

面向对象就是以更小的颗粒度来对软件进行复用。它将数据与其紧密耦合的方法放在一个逻辑边界内,这个逻辑边界就是对象。用户只能访问对象的public方法,而看不到对象的内部。

以前面向过程的思想是 程序= 数据结构+算法,而现在面向对象的思想是 程序 = 对象 + 关系

三、 How——面向对象的应用

面向对象的核心就是如何更好的建立对象,以及处理对象和对象的关系,从而能够使对象达到可复用、可扩展、可维护。也就是我们常说的解耦合,从而使我们的程序达到“高内聚、低耦合”

类&对象

百度百科定义

 “类(Class)是面向对象程序设计(OOP,Object-Oriented Programming)实现信息封装的基础。类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

类与对象是一个抽象与具体的概念,类是抽象的,而对象是具体的。可以用一个成语来进行解释:物以类聚。“物”是代表的是“对象”,“类”代表的是“类”,而“聚”代表的是“集合”。

关系

对象和对象之间的关系无非就两类:依赖关联

  • 临时关系——依赖(使用关系,例如:吃饭是使用筷子,这就是一个临时的关系。不吃饭的时候我们就不需要筷子)
  • 持久关系——关联(继承、聚合、组合)

如何实现解耦合?

解耦合的方式就涉及到了面向对象的三大特性: 封装、继承、多态。而具体在关系中是如何进行体现的呢?

  • 在依赖关系中(在方法中解耦合,由强变弱)
    • 反射
    • 代理
    • 回调
    • ……
  • 在关联关系中(由内部关联变为注入关联)
    • 集合

设计模式与面向对象的关系

设计模式就是面向对象思想应用的一种具体的体现,它是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

猜你喜欢

转载自blog.csdn.net/u013035538/article/details/130033465