关于”面向对象”的异想天开

大学时学了"面向对象程序设计",就有一个想法,一直没找到机会说一说,这里把它写出来。

“面向对象”的思想是把世间万物看作一个个的对象,他们都有自己的属性和动作。比如一头牛,它有体重,身高,有角无角等属性,它的典型动作是吃草、耕地、走路等。每一个“对象”有自己实现动作的机制,从外面看是看不到的。这就是面向对象的“封装性”。比如牛是怎么把吃进去的草转化为耕地的能量的我们是看不到的,也不需要知道,我们只需要知道给牛吃草牛就可以给人们耕地。

同样的,我们开车不需要知道车的构造。在编程的时候,就是把万物抽象成属性和动作,生成一个个独立的模块,这些模块通过“接口”与外界“沟通”,就像一个内存条一样,内存条实现了封装,它与外界的“接口”就是那些“金手指”,而我们是不需要知道内存条内部是如何工作的。组装电脑的时候,只需要像拼积木一样把主板、CUP、内存、显卡、声卡和电源等模块拼在一起就成了。因此“面向对象”编程的最高境界就如拼装电脑一样,要实现什么功能只需把各个独立的模块拼装起来,而无需知道这些模块是谁编写的,是国产的还是进口的。

当然,上面不是什么异想天开,只是我对“面向对象”的理解。我的想法是设计一种机器。它是用“面向对象”的思想设计的。这个机器外表没什么特别。它有一个进口和一个出口。从进口赶进去一头牛,从出口就可以出来火腿肠、牛排、牛肉干之类的成品。当然了,这个机器内部是怎么工作的我们不需要知道。

还有一个想法:可以设计一种机器人,这种机器人是存在于程序之中的,或者说它是一段程序。它有自己的属性和动作,而且智能很高。编写出这样一个机器人之后,把它放以互联网上,它就可以自由活动,从一个节点到达另一个节点,它可以收集每一台计算机的信息存储于自己的“脑”中,然后返回主人的计算机上。听起来这像是一种病毒。事实上也可以说它是病毒,不过比病毒更高级,因为它已经有了人的智能,它会选择运动的方式,遇到危险会躲开,对信息有用没用会有自己的判断。

发表评论

电子邮件地址不会被公开。 必填项已用*标注