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

举报
翟文彪 发表于 2022/05/14 23:14:48 2022/05/14
【摘要】 导语 前一阵老师找我聊了一件日常生活中的一件小事,但是通过这件小事,老师分别从面向对象和面向过程两个方面给我进行了分析和讲解,由此,我也对面向对象和面向过程进行一个总结。 背景 1、何老师拿着米老师...

导语

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

背景

1、何老师拿着米老师办公室的钥匙。
2、米老师下午下班,通知何老师锁门。
3、第二天,米老师上班,需要开门。

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

解决方案

面向过程:米老师下班后,何老师锁好门,告诉米老师将钥匙放在前台,第二天,米老师到前台拿到钥匙,开门。
面向对象:米老师下班后,何老师锁好门,何老师保存好钥匙,第二天,米老师需要开门的时候通知一声何老师,何老师带着钥匙来开门。

方案解析

我们分析这两种解决方案,为什么说第一种是面向过程的,第二种是面向对象的呢?
第一种方案分析:对于开门这个方法没有进行封装,原本应该由何老师做的开门的方法,现在米老师也必须拥有,没有封装没有复用,并且缺少了数据的安全性支持,要是放在外面,相当于是将数据暴露了,任何人都有可能接触到钥匙,安全性也就没有了保障。这也就完全符合了面向过程的开发。当然,这种方式也有他的优点,就是实时性得到了保障,米老师可以来了之后直接拿钥匙开门,不需要等待何老师的回复。
第二种方案分析:这个解决方案中,使用了消息驱动的方式,米老师通过发消息通知的方式通知到了何老师来进行开门的操作,在这个过程中,每个人或者说每个对象的职责都很清楚,米老师负责通知和办公,何老师负责开门,专人专职专事,对于方法和对应的数据都进行了很好的封装,在需要开门的时候我们只需要将何老师这个类new出来即可。并且这种方案,他的一个天然的优势就是他支持可扩充、可维护、可复用。

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

对于这两者之间的比较,我通过一个思维导图进行了梳理:
在这里插入图片描述

文章来源: blog.csdn.net,作者:翟文彪,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zwb568/article/details/124763187

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。