025 麻烦与大麻烦(五) (第3/3页)
个是国家政府中的各个部门,部门之间的关系是相当复杂的,部门之间也不是完全独立的个体,而是会相互影响的。”费了好大的劲儿,韩庶总算是找到了一个比较贴切的实际比喻。
“那岂不是面对对象要比模块化还要低级很多,大伙儿都知道一个统一的政府,效率要远远高于诸侯分治,用了这种方法不是反倒是一种倒退?用这种低效率的方法,简直就是浪费资源,应该是没有用途和前途的吧。”人群的最后,一个略显瘦弱的年轻男子,站的如松笔直,高傲抬起的下巴微微的上扬着,鼻梁上厚厚的镜片反射着不屑的目光。
李力勤有些后悔来这个鸟不拉屎的地方,本来还以为这个路修远是那个了不起的隐士高人呢,没想到一来看到的却是一个什么都不是的小屁孩儿。听了一会儿这个小孩儿的讲课。虽然课是讲的不错,也有些新的东西。
李力勤知道这个面对对象方法,这是在国外刚刚兴起的一种问题解决方法,首先被应用在了程序编制领域。这种面对对象方法不只是一种编程方法,严格的来说,这种方法,其实是一种人类思考、解决问题的方法。这种方法虽然从某些角度上来说是非常完美的,但是用在计算机程序编制的实现上,却有着几乎是致命的缺陷,那就是效率低下。
李力勤就是那个被同事们称作白眼狼的家伙,在研究所内也是一个顶针的主儿。虽然李力勤本身是搞硬件的,是自从对路修远的那篇《面对对象硬件设计方法》感兴趣之后,对这种主要被应用在软件中的方法,进行了仔细的研究。所以在李力勤看来,韩庶这种只说好处,却极大的忽略了缺点的作法是极不负责的。
要知道在哪个时代计算机资源是非常珍贵的,计算机的每个内存字节都要被充分的利用,每个指令时间都是宝贵的,如何能为了一点点的使用的方便就作这样无谓的浪费?所以在李力勤看来,韩庶的这个课程也就变成了,糊弄糊弄外行夸夸其谈的骗子讲座,本身兴致高昂的李力勤,不禁大失所望。看着小屁孩还在这里鼓吹着所谓的面对对象方法,而且在言辞中也没有一点点新意,再也忍不住的李力勤勃然而起。
×××××××××××××××××××××××××××××××××××××××
【下面黑括号中的是计算机知识,不喜者可以略过,不影响剧情】
【如果要想在编程中用面对对象的方法,就面临着在执行效率上的损失。因为在面对对象的概念里,可以让两个不同性状的对象,做同一种名称的操作。种名字相同的操作,在面临不同的操作对象时,表现出不同的性状和结果。
比如:加法这种操作,在普通的编程方法中,一般的文字串是不可以做加法操作的,可是在面对对象的方法中,完全可用加号来连接两个文字串,将两个文字串合并成一个文字串。可同样的加号,对普通的数字来说只是普通的加法。
还可以将这个概念引申开去,假设有一个游戏程序,其中有两个机器人,将这两个机器人相加完全可以得到一个组合机器人。
这是一种重大的突破。这在面对对象的方法中叫多态性。就是一种描述,表现出多种状态。这对大的软件工程是非常有用的,使用对象的一方,完全可以不必关心对象的真实特性和内部细节。可以用一种普通的操作来进行操作,完全不必担心操作的结果会有意外。这样即使在缺少资料,或甚至于没有资料的情况下,一方可以非常容易的,非常自然的使用另一方提供的软件部件。
但是这种方法不是没有代价的。这种方法实现的时候:每个对象加载时,要在计算机内安装一个本对象的详细功能说明表格。这个说明表,将对象的性质说明、对象可进行的操作、这个操作的细节指向,等等,都要一一登记在对象说明表格中。在使用对象的时候,编译系统会产生一段额外的代码,这段代码会自动的查阅这个张表,并且分析后根据表内关于这个对象的信息作出正确的判断,使用正确的操作。
于是,对象的这个说明表,和编译器产生的额外的查询分析代码,都要占用大量的内存空间。在查用表和分析表中的数据时,都要花费更多的时间。而用面对对象语言编制的程序中,对象无处不在。在有些面向对象语言中,甚至是简单的整数,都被严格的作为对象处理。这样,每次的操作对象时,都要这样去查表、分析表。
由此,程序的执行效率将有极大的损失,在一些面向对象语言中,这种的效率损失甚至是连大型机都不可忍受的。而这是面对对象方法的无法克服的障碍。】