内容简介:面向对象编程代表了自计算机出现以来普遍存在的传统模块化编程方法的范式转变。虽然今天的计算机科学家无疑是聪明的人,但在柏拉图的对话中,实际上认为支持面向对象编程的内在概念已有近2500年的历史了!现在,面向对象编程(OOP)的架构师是否意识到这些先前的概念是非常值得怀疑的,然而,柏拉图和后来的软件架构师的思维过程之间似乎存在显着的相关性,甚至在数千年间也是如此。
面向对象编程代表了自计算机出现以来普遍存在的传统模块化编程方法的范式转变。虽然今天的计算机科学家无疑是聪明的人,但在柏拉图的对话中,实际上认为支持面向对象编程的内在概念已有近2500年的历史了!
现在,面向对象编程(OOP)的架构师是否意识到这些先前的概念是非常值得怀疑的,然而,柏拉图和后来的软件架构师的思维过程之间似乎存在显着的相关性,甚至在数千年间也是如此。
古希腊哲学
柏拉图 出生于雅典,老师是苏格拉底(通常相信作为西方哲学之父)。然而,柏拉图而不是苏格拉底可以说是古希腊哲学家(如果不是所有哲学家)中最著名的,因为他通过他丰富的著作遗产对现代哲学产生了深远的影响; 35个对话 和 13个字母。
虽然柏拉图的着作涵盖了许多哲学主题,但是在他的许多对话中发展出来的是他的激进的 形而上学 概念,这些概念在我们与面向对象编程的比较中特别有意义。从根本上说,柏拉图的 形式理论 直接类似于OOP的基础。
形式论
纵观他的形而上学的讨论中,柏拉图的“形式Form”是指模板或模式的抽象表示。
举例来说,为了解释形式的概念,柏拉图讨论了美的概念。一朵花是美丽的,一幅画也可以说是美丽的,但美女本身不是。柏拉图认为,真正美的形式独立于拥有美的物体而独立存在,因此我们可能有一个完美的“美”的概念,但却永远无法亲身体验它。
按照柏拉图的说法,一朵花被称为分享为美的形式。它很美,但我们从未看到真正的美。这种花被认为是一种特殊的,从形式中继承其品质,其中之一就是美。
真正美丽的形式是不变的,不变的,而一朵花可能在一段时间内拥有美丽,但最终在它枯萎死亡时会失去它。作为抽象,形式独立于继承其品质的细节或现实世界对象。
电脑编程
1.传统方法
计算机程序本质上是计算机按照预先描述的顺序遵循的指令列表 ; 做A,然后做B等。有点像跟着烹饪食谱 一步一步。
随着计算机变得越来越先进,它们的相关软件程序也变得更加冗长和繁琐。通常,计算机需要一次又一次地运行相同的代码。因此,不是每次需要时都重写这段代码,而是将函数或过程写成半隔离的代码片段,只要需要它们就可以调用它们。这有助于软件以模块化方式开发,各个模块负责某些计算过程。
2.面向对象的编程
面向对象的编程模块,带向一个新的水平,与模块成为自包含的代码调用件类。
一个类就是一段计算机程序作作为模板模式(banq注:一朵花将美作为其形式或模板)
与柏拉图的分层形式系统类似,可以增强这些类或模板。可以创建扩展类,继承父类的所有属性,但是使用其他属性对其进行增强,以创建包含其所有父属性的新“子”类,以及更多自己的加载:
// //椅子的模板或完美形式 class Chair { // //定义椅子的代码位于此处 } // // 一种椅子类型的新模板,从完美的椅子形式继承其属性 class OfficeChair extends Chair { // //办公椅的额外代码位于此处 } // /创建一个实际的对象,或特定的办公椅 $objMyOfficeChair = new OfficeChair(); // 创建另一个对象,或特定的办公椅 $objMyOtherOfficeChair = new OfficeChair();
这是一个极其简化的例子,但希望可以看到类和对象的概念及其与柏拉图形式和细节的相关类比。
没有什么是新的
因此,虽然我们可能认为我们是走在这个星球上的最聪明的一代,但是可能值得暂停一段时间以获得一点谦卑,因为我们可能经常只是采取新的旧观点而已。
在传道书1:9-10中,甚至圣经也承认这一点:
“在阳光下没有什么是新的。甚至我们所说的“看,这是新的!”已经存在于我们之前的时代。
过去伟大的科学家和思想家也承认了这一事实。甚至艾萨克·牛顿也向前人的灵感致敬:
“我只是站在巨人的肩膀上。”
寻求灵感
如果你正在努力想出一个不妥协的问题的答案,或想找到一种新的做事方式,也许你可能会比在经典教育中寻找灵感更糟糕。
通过研究历史,即使是在自己的不同学科中,您也可能会遇到一些想法,这些想法可以转移到您自己的专业领域,并带您前往您梦寐以求的方向。他们甚至有一个过程的名称,他们称之为思想的交叉施肥。
所以,下次你遇到问题时,你会转到哪里寻找灵感?柏拉图,亚里士多德......
以上所述就是小编给大家介绍的《柏拉图和面向对象编程》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 面向Python,面向对象(基础)
- 面向Python,面向对象(基础3)
- <<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
- 《JavaScript面向对象精要》之六:对象模式
- 《JavaScript面向对象精要》之三:理解对象
- 面向对象的程序设计之理解对象
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
html转js在线工具
html转js在线工具