C语言知识分享:面向对象和面向过程到底是怎么回事?

今天下午在一个组的项目回顾会议上,这个同事讲了自己用DDD思想对三个模块的重构。把之前在Service层的一些业务逻辑下沉到了领域层里,由之而引起的讨论。

部门经理:“其实你的业务逻辑总体并没有少,只是把边界重新划分了一下。”

一起参与开发的同事:“在第二个模块中(任务系统,包括了任务拆分,状态跟踪等)这种思想比较有优势,在一三项目中不是很明显。”

于是引出了我的一个问题:“到底什么是面向对象,什么是面向过程,在什么情况下适合面向对象,什么场景下适用于面向过程?”

以C语言和Java语言为例: C语言没有类,但是有结构体,结构体中不能有函数,只能有属性。这说明了什么?说明了在面向过程的思考方式中,数据和操作是严格分离的

C语言中为什么函数需要定义到调用此函数的前面,也就是说先声明后调用?如果按照流程化的思路来看这种设计方式,想要调用一个子流程,势必要在调用之前就定义好

而在java的类中,就没有函数定义先后的问题,这与面向过程和面向对象的最小定义粒度有关,面向过程的最小定义粒度为流程(方法、操作、函数),而在面向对象中,最小定义粒度为对象,这个对象的行为没有先后,包含在对象这个大的容器中。

封装、抽象、继承、多态其实就是类比的对象进行的建模,比如以人为例,人有些属性不想示人,有些属性只能给指定的人了解,这就是封装。人掌握的知识其实是现象的一种抽象。人继承来来自父母的一些生活习惯,而又有所不同,这就是多态。

归总&#

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值