信息化的本质分享 http://blog.sciencenet.cn/u/Babituo

博文

对象定义方式

已有 282 次阅读 2021-5-17 16:08 |个人分类:面向资源软件开发方法|系统分类:科研笔记

第3次重启面向资源的开发ROAD,只因数字孪生。

对象定义方式

一、引言

在面向资源开发的方法中:类型是一种特殊的资源,是定义类型的资源。

类型本身,又是用来产生和维护资源的模板,资源须按照类型的定义来产生和维护。

那么,作为资源的类型,也应该有定义这类资源的类型,就是【类型】资源的【类型】。

类型的类型】又还是资源,所以,还会有【类型的类型】的类型......。

似乎无穷尽,实则有循环。

对这个问题先埋一个伏笔。

 

反过来说,资源是对一般性的对象的描述。<=>

资源,是按【一般对象定义的方式】来描述任何对象的【描述文档】。

语义分解:一个资源是一个描述文档。

1. 是描述任何【对象*】的描述文档。

2. 这样的描述文档本身也被称为是一个【对象】。

3. 是按【对象定义方式】来描述的描述文档。

其中:

【对象*】是指被描述的”对象”。

【对象】是指对”对象”的描述。

【对象定义方式】是描述”对象”的规范方式。

于是,进入本文正题。

二、对象定义方式

1. 是用数据来描述的方式。

2. 对描述的数据有结构和格式上的规范要求。

(1) 描述对象只能用(只需要用)三种结构的数据

① 单个值的结构

② 多个对等值的结构(数组)

③ 多个个性值的结构(对象)

也就是说,用来描述对象的数据,能用、也只能用、只需用这三种结构。

也就是说,任意给定的一个值,它可能是一个单个值,或多个对等值组成的值,或多个个性值组成的值。

1. 多个个性值描述结构

个性值,表示每一个值,都可以有区别于同组内其他值的独特个性。

这种独特个性,用一个唯一的名称来标识,也就是同组内的值的名称不能有2个或以上个是相同的。

所以,描述的结构,就是一个【名-值对】的集合,多个【名-值对】的一个排名不分先后的聚集。

而【名-值】对中的【值】,又可能是三种结构值中的某一种结构的值。

有人假设,用这种结构,就可以描述任何的对象。

所以,对某个对象得到了一个这样的描述,这个描述,就被看做是这个被描述对象的“孪生数字对象”。如果在软件程序的语境下,说“这个对象”,指的是:对某个现实对象的这个描述。于是,每个按照【多个个性值描述结构】进行的描述,就是一个对象。

2. 多个对等值描述结构

对等值,相对个性值而言,就是不必区分每个值和同组内其他值的独特个性。

请注意,是不必区分这些值的独特个性,而不是这些值之间不能有独特个性,当然可以有,而是,即便你有独特个性,到了这个集合里,任何值的独特个性都被“无视”。当然,更多的时候,是确实这些值,确实是“用同一个胚子”做出来的。

好吧,即便是同一个胚子做出来了,不可否认,它们各自仍然是这个值自己。

于是,就只能用加入这个集合的序号来区分它们,也只需要用序号来区分它们。至少对这个集合整体而言,它对属于集合中的任何值,都是一视同仁的。

这种结构,就被称为“数组”,所以,数组一般不作为独立的对象,而作为对象中由无需关注个性的对象组成的对象集合的整体对象来应用。

3. 数组结构和对象结构PK

为什么不假设用【多个对等值描述结构】就能描述任何的对象呢?

和假设用【多个个性值描述结构】就能描述任何对象一对比就知道,一个对象的内部组成对象,要是都没有个性的话,显然不符合这个世界的实际情况。

但事实上确实也存在这样的对象,内部组成对象之间确实没有个性。

比如,一面砖墙,由很多相同的砖块磊成,确实没必要区分每块砖和其它砖有什么不同。如果非要用【多个个性值描述结构】来描述这道墙的每一块砖的话,会很繁琐的。

所以,让对象的某个个性值,就是一个【多个对等值描述结构】的值,就能解决这个两难选择问题。

4. 数组是如何“尊重个性”的

看上去“数组”很不尊重个性。

实际上,数组对个性的尊重是至高无上的了。

它把所有的个性都认为是组成对象的“个人隐私”,绝不打听和干涉。

即便是要管理组成对象的共性,它也只要求看上去是共性就够了。

比如一所房子的四面墙,是砖墙也好,木板墙也好,玻璃墙、铁板墙也好,这房子不关心,只关心你是不是墙,是不是能“独挡一面”,是就够了。

这时,房子的四面墙也是一个数组。

5. 单个值描述结构

单个值描述,显然是相对多个值描述而言的。

一般性描述对象,显然需要多个个性值来描述。

但总不能这多个个性值,永远都又是多个其他个性值组成的吧?

当分解描述到不能再分解的时候,得到的描述,就是单个值的描述结构。

 

单个值描述最常见的就是分解到对象的某个单值属性了。

比如,一个人的年龄,描述到年龄,用一个数字就够了。

对这个数字,再怎么分解由什么组成,就意义不大了。

所以,单值描述,也是相对而言,是对于系统所关注的对象而言,看值不值得将它的属性组成值一直分解下去?

分解总有个度的,到这个度了,就得到单值描述结构了。

三、为什么【对象定义方式】能描述任何对象?

事实上,对象定义方式只是在坚持“用值来描述”的前提下,只关心如下两个描述要素:

1. 用单个值描述还是多个值描述?

2. 多个值描述之间是否需要区分个性?

有这两条就够了,而且两条都必须要用,少一条都不够。这就是所谓的“充分必要条件”。

似乎在展现这样的规律:越简单的规则,适应范围越广。

如果我们找到了一种规则来描述对象,规则的条件尽量少,每条都需要,并且有这些就够了,那么,我们就找到了接近本质的描述方法。

四、结语

以上就是JSON对象的原理,即编程语言JavaScript用来建立“数字孪生”对象的方法。

JavaScript是我新的面向资源应用开发平台的开发语言。




http://wap.sciencenet.cn/blog-33982-1286968.html

上一篇:UML面向对象建模技术经验
下一篇:数字孪生与面向资源应用开发ROAD

1 武夷山

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2021-6-18 16:02

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部