面向对象和面向过程的理解

简介: 面向对象和面向过程的理解

导语

前一阵老师找我聊了一件日常生活中的一件小事,但是通过这件小事,老师分别从面向对象和面向过程两个方面给我进行了分析和讲解,由此,我也对面向对象和面向过程进行一个总结。


背景

1、何老师拿着米老师办公室的钥匙。

2、米老师下午下班,通知何老师锁门。

3、第二天,米老师上班,需要开门。


何老师和米老师,有几种办法,解决这个问题。


解决方案

面向过程:米老师下班后,何老师锁好门,告诉米老师将钥匙放在前台,第二天,米老师到前台拿到钥匙,开门。

面向对象:米老师下班后,何老师锁好门,何老师保存好钥匙,第二天,米老师需要开门的时候通知一声何老师,何老师带着钥匙来开门。


方案解析

我们分析这两种解决方案,为什么说第一种是面向过程的,第二种是面向对象的呢?

第一种方案分析:对于开门这个方法没有进行封装,原本应该由何老师做的开门的方法,现在米老师也必须拥有,没有封装没有复用,并且缺少了数据的安全性支持,要是放在外面,相当于是将数据暴露了,任何人都有可能接触到钥匙,安全性也就没有了保障。这也就完全符合了面向过程的开发。当然,这种方式也有他的优点,就是实时性得到了保障,米老师可以来了之后直接拿钥匙开门,不需要等待何老师的回复。

第二种方案分析:这个解决方案中,使用了消息驱动的方式,米老师通过发消息通知的方式通知到了何老师来进行开门的操作,在这个过程中,每个人或者说每个对象的职责都很清楚,米老师负责通知和办公,何老师负责开门,专人专职专事,对于方法和对应的数据都进行了很好的封装,在需要开门的时候我们只需要将何老师这个类new出来即可。并且这种方案,他的一个天然的优势就是他支持可扩充、可维护、可复用。


面向对象和面向过程的对比

对于这两者之间的比较,我通过一个思维导图进行了梳理:

f6da943126aa4f58ad81d7d9b2022371.png


目录
相关文章
|
4月前
关于对面向对象和面向过程的理解
关于对面向对象和面向过程的理解
43 1
|
4月前
|
算法 Java 程序员
类和对象 | 面向过程与面向对象的初步认识
类和对象 | 面向过程与面向对象的初步认识
57 5
|
7月前
对面向对象编程的理解,面向过程和面向对象有什么区别
对面向对象编程的理解,面向过程和面向对象有什么区别
74 0
|
7月前
面向对象和面向过程
面向对象和面向过程
46 0
|
Java C++
面向对象—面向过程
从80年代起,人们基于以往提出的有关信息隐蔽和抽象数据类型等概念,以及由MODula2,Ada和Smalltalk和语言所奠定的基础,再加上客观需求的推动,进行了大量的理论研究和是时间探索 ,不同类型的面向对象语言(如:Object-c、c++,Java、object-Pascal)逐步地发展和建立起较完整的和雨后春笋般研制开发出来,OO方法概念理论体系和实用的软件系统。面向对象源于Simula,真正的OOP由Smalltalk奠基
79 0
|
7月前
面向对象编程的理解,面向过程和面向对象有什么区别
面向对象编程的理解,面向过程和面向对象有什么区别
63 0
|
7月前
面向对象编程和面向过程的理解
面向对象编程和面向过程的理解
43 0
|
7月前
|
JavaScript 前端开发 开发者
面向过程和面向对象
面向过程和面向对象
79 0
|
7月前
|
Java C++
面向对象-面向过程
面向对象-面向过程
56 0