论学习和掌握面向对象思想的重要性

提起面向对象,似乎已经是一个很out的话题了,C++、Java、C#等一众面向对象语言在很多领域中获得了广泛的使用。或许你恰好就在使用某种面向对象的语言,但你就真的确定自己理解并掌握了面向对象的思想了么?很多时候,你会发现,身边很多已经工作了一些个年头的人,依然未能很好地理解并掌握面向对象的思想。他们可能会一边谈论着类、对象、封装、继承、多态等一些面向对象的概念,一边使用面向对象语言进行着半面向对象半过程式的开发。这绝非危言耸听,而是实实在在发生在我们的身边。
只有从思想上足够重视,才能在行动上有所体现。下面就聊一聊面向对象思想的重要性,以及如何才能更好地掌握面向对象思想。

一. 面向对象思想的重要性

1. 它广泛存在于社会生活的方方面面

实际上,面向对象思想更符合人们的思维习惯,它也广泛地存在于社会生活中。我们每个人都是一个独立的个体,既有自身独特的一面,又具有人类共同的特性。我们所使用的每样工具,也都是实实在在的对象存在,我们使用它们,但并不期望要去知晓它们的工作原理以及制作过程。它普遍而又自然地存在于生活当中,却又极易被忽视。作为一种思想,它是需要抽象、提炼、总结的,这也许是造成对面向对象思想认知鸿沟的原因。不能否认的是,透彻掌握面向对象的思想,不仅仅对编程有益,还可以让你能更深入地理解所处的这个物质世界。

2. 它是理解和掌握面向对象设计原则和设计模式的基础

在面向对象编程的发展过程中,人们总结出了很多设计原则与设计模式,这些原则和模式可以指导编写出健壮、灵活、可维护、可复用的代码。面向对象思想是理解和掌握设计原则和设计模式的基石,只有透彻地理解了面向对象,才有可能理解到设计原则和设计模式的精髓。它们的关系如下图所示:

3. 它可以帮助你理解现有的代码系统

不管现有的代码系统是基于某个框架,或者是自身从零开始构建,面向对象的思想都可以帮助你更好地理解它。优秀的代码系统,大到顶层组件模块,小到每个类、类中方法和域的设计,都应该是符合面向对象特性的。掌握面向对象思想可以让你做到知其然并知其所以然。

4. 它可以帮助你编写出更优美的代码

在面向对象编程的时候,只有知晓如何编码是好的,如何编码是充斥着“坏味道”的,才可能编写出优美的代码。

5. 它可以帮助你理解重构技巧

虽然面向对象的分析与设计提倡在软件设计的各个阶段先建立模型,但是编码并不意味着仅仅是对模型的实现与填充。人们对事物的认知是一个由浅入深的过程,因此,提前设计与及时重构,才是更科学的软件设计方式。面向对象思想不仅可以帮助你做好提前设计,也能帮助你实现更好的重构,让你知道为何重构以及如何重构。

6. 它是你技术成长的必备技能

如果你的梦想不是仅仅做一个代码搬运工或普通的程序员,而是梦想成为架构师、CTO,你就必须熟练地掌握面向过程、面向对象、面向函数、面向服务的思想,它们是万丈高楼的根基。

二. 如何才能更好地掌握面向对象思想

归根结底,面向对象思想是一项技能,同掌握其他技能一样,只有理论结合实践才能更好地掌握它。

  • 理论
    学习一门理论有两种途径:别人传授和读书学习。第一种途径可以通过向身边优秀的人学习或是通过网络课程学习大师们的理解感悟。第二种途径就是自己学习优秀的相关书籍。最好的方式就是二者结合。
  • 实践
    学习的目的是为了实践,也唯有实践方能真知。为了能更好地掌握、运用,我们需要主动地设计更符合面向对象的类和系统,用面向对象的思想去审视、重构现有的系统。纸上得来终觉浅,绝知此事要躬行,唯有不断实践并总结,才能真正掌握。

三. 本专题文章的规划

本专题文章将围绕《面向对象的思考过程》、《UML用户指南》、《面向对象分析与设计》三本经典书籍中的内容总结展开。其中,在《面向对象分析与设计》一书中,提供了5个涉及不同问题域的案例,对训练我们使用面向对象思想进行分析与设计是有极大的价值的。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 164,099评论 24 696
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 10,641评论 2 52
  • 周一的咖啡馆比较安静,人多的时候被吵得头痛,人少的时候又未免心慌。时间的流逝确实很快,不知不觉间又到了年尾。今年咖...
    海边的桃源阅读 67评论 0 0
  • 我的小名叫羔子。 羔:小的意思。一一没错,我是我们家的幺儿。 其实这个名字不是我的真正的乳名,是我的绰号,代表小儿...
    空中的梨子阅读 951评论 20 22
  • 很多年以前我喜欢在京沪铁路的路基下游荡,一列列火车准时在我的视线里出现,然后绝情地抛下我,向北方疾驰而去。午后一点...
    口袋中的阳光阅读 423评论 0 1
  • 最近一直在思考一个问题,作为一个独立的个人,是否需要对外界持续的有价值的输出?假如我是一个不搞自媒体,不帮大机构没...
    产品狗看世界阅读 117评论 0 0
  • 雨声淅淅沥沥泛起一朵朵涟漪消褪了最后一丝暑气 缓缓聚集的是欢乐是忧愁是时隔春冬的夏致秋的回礼 雨飘渺地落下是幻灭的...
    心理盐水Z阅读 302评论 0 5