【程序员必备小知识-抽象知识30】面向对象的优势

377 阅读1分钟

引言

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

本篇文章来自《Thingking in java》一书,曾几何时,我深刻的意识到技术的进步或许不是知识的进步,而是抽象的进步,因为抽象瓦特发明了蒸汽机,人类进入蒸汽时代,因为抽象,人类将大型计算机改造出个人计算机,人类进入信息时代,本篇文章我们来讲讲抽象。

面向对象的抽象背景

在面向对象没有面世之前,人们都是基于计算机结构进行抽象,于是有了汇编语言,但汇编语言并不容易编写,于是抽象成了c语言,有了变量和函数,但是这样的抽象要求我门着重考虑计算机结构,而不是问题本身,这就要求我们必须建立机器模型和问题模型的联系,但这种联系只适合解决一类问题,十分受限。

面向对象的优势

而面向对象的编程思想和编程语言,使我们只需要关注问题本身,问题中的元素和问题中的解决方案都被我们抽象成对象,如果对应问题空间没有与之相对应的对象,我们可以灵活添加问题空间中的元素,或者添加新的对象类型去解决新的问题,与我们之前面向过程的抽象相比,这无疑是更灵活、更强大的抽象方式。