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

本文通过一个关于钥匙管理的小故事,探讨了面向过程和面向对象两种编程思想的区别。面向过程强调步骤执行,而面向对象注重对象职责与消息传递。前者方案中,钥匙的管理不够安全且缺乏复用;后者则体现了良好的封装性和可维护性。通过对比,作者阐述了面向对象的优越性,如支持扩展和复用。并提供了思维导图以清晰展示两者之间的对比。
摘要由CSDN通过智能技术生成

导语

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

背景

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

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

解决方案

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

方案解析

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值