【基础】究竟什么是面向对象?(一)为什么会出现理解困难

编程对于笔者而言也算是半路出家。在学习Dart开发语言的时候越来越发现自己对于面向对象编程存在一些困扰,于是重新整理梳理一下面向对象,如有不对欢迎指正分享。

为什么会出现理解困难

混乱之一:术语洪流

开发者在初次接触面向对象的时候就会接触到大量陌生的术语。

例如:继承、泛化、超类、子类、重载、重写、访问控制、用例、建模、UML、重构、敏捷开发等等术语。

在使用术语的沟通的时候,自己会觉得这样很酷,但是搞不清楚它们的实际含义和差别会在沟通中产生理解差异。

并且这些术语中伴随着定义混乱。在深入理解面向对象之前,对这些术语的庞大和混乱感到气馁的人,应该不少。但这也是因为面向对象涉及的领域广带来的影响。

混乱之二:比喻乱用

通过比喻来讲解面向对象的特点,但是不详细介绍编程语言的结构和目的。

例如:动物是超类,哺乳类和爬虫类是子类,鸭嘴兽就相当于爬虫类和哺乳类的多重继承。

使用比喻,确实能让人很快从现实世界理解面向对象的特征但,往往开发者只记住了生动的比喻,却不关心面向对象背后的结构和目的,或者根据自己的理解,对实际结构产生错误的认知。

混乱之三:“一切都是对象”综合征

很多人在介绍面向对象的时候,都会提到面向对象的特点就是“一切都是对象”,但这其实是一种拿着半截就开跑的做法。

结合比喻乱用,开发者会产生“当使用面向对象的时候,可以直接将现实世界表现为程序”的重大误解。

“一切都是对象”是造成面向对象理解困难的最大问题。

实际上面向对象不能直接表达出现实世界,只是通过编程技术将现实世界中不变的、可重复抽象的业务制作成软件。软件只是承担了现实世界中的一部分工作,并不能表示现实世界本身。

三大混乱造成了面向对象理解困难

术语洪流、比喻乱用以及“一切都是对象”这三点在我看来是导致面向对象理解困难的根本原因。

一旦脱离了面向对象的应用场景,应用的结构和目的,以及误以为使用面向对象就可以直接表达出现实世界,就会对面向对象产生疑惑。

在后面的章节中,笔者会站在自己的角度,结合参考资料,一步步对面向对象进行梳理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZeroJsus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值