0.3.1 一切皆概念/类型

本文介绍柏拉图原则。

1.由来

面向对象编程范式的核心观念是:以概念/类型建模一切。

编程的问题域(problem domain)中抽象/提取各种概念,符合人们的心智模型,而所有的概念被映射为解域中的类型。

面向对象编程范式的思考单元,(毕竟,基于类的语言是主流)是概念/类型,而不是实例化的对象。

只有喜欢进程的人、现实的人、生活在内存中的人,才喜欢说面向对象。编写源代码的人/神,喜欢说面向类型

对象(object)是一个具有浓郁的哲学味道的术语,原意是指用一种或多种(人的)感官,尤其指用视觉或触觉可以感觉到的东西、物体或物品。真实世界就是由对象/客体组成的。人们看见这条黄狗、那条哈巴狗,这时,人类发挥其抽象(v.abstract)能力,从一个个的具体对象中提炼出类别/类型性的概念‘狗’或‘Dog’。

概念和对象,谁是第一性的?在真实世界中,亚里士多德(Aristotle)指出其老师柏拉图(Plato)的错误,认为:“事物总是个别存在的”。抽象不能作为单独的存在物,抽象只能通过具体/个别而存在。软件的问题域是真实世界的一部分,在面向对象的分析阶段,完成从问题域的诸多具体中抽象出名词/概念这一过程,这里一切皆对象。不论概念属于现实生活(狗)还是虚幻世界(怪兽),不管概念所表达对象的存在是真实的还是内心中的,都映射为解域/程序中的类。类(class)是问题域中的概念在解域中的映射。

软件的解域正好与真实世界相反,先有类,再从类创建对象。柏拉图的理念论,正好适用于软件的解域,因而在2011年,笔者将该观点构造/捏造成面向对象范式的基石性原理,并在《编程导论(Java)》中加以宣扬。

★柏拉图(Plato)原则:类的世界独立存在,对象世界由类创建而来。

 

这是面向对象编程范式的基石性原理,反映了面向对象的观念范式和心理范式,反映了面向对象编程范式的核心观念——以概念/类型建模一切。程序员对这一原则的理解和接纳程度,决定了他对面向对象的领悟程度。(通过"第一原则",强调观念范式和心理范式对于面向对象范式的意义。单纯地讲授面向对象的逻辑体系,是不完备的、糟糕的教学方式。

从Java语言上,可以观察到柏拉图原则的推论:

 

  • 类可以独立存在。Dog.class可以静态地存在于硬盘中,它并不在意世界上(内存中)有没有活动的狗。而程序运行时,Dog.class预先动态地存在于内存中,而后(如果需要)创建本类的对象。
  • 类的静态成员比对象的实例成员更自然;
  • public static void main(String [ ] args),它无中生有。从该起点开始创建第一个对象。一个对象通过执行其方法能够创建其他的对象。
  • Java源代码中没有任何对象,一切皆类型、引用变量或引用,唯独没有对象。

柏拉图原则的适用范围:基于类的语言(class-based languages)

因为以概念/类型建模一切,所以人们可以按照不同的领域,并行地展开各种的研究,从而形成庞大的类库。庞大的类库是面向对象技术最主要的优势。

 

移到垃圾桶中的原博客:

一切皆对象,X

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值