冒号课堂§2.3:对象范式 - 编程入门网
,OOP就是将相关的函数用数据粘合,重新包装后再贴上对象的标签。从这种角度上看,与其说OOP更具重用性,不如说更具易用性。”
叹号狐疑道:“OOP并不更具重用性?这可是它的金字招牌啊!” 冒号冷哼一声:“不要被金字招牌晃晕了眼,我来问你:是收音机、电视机之类的电器产品更具重用性呢,还是与电阻、电容之类的电器元件更具重用性?” “当然是电器元件啦。”叹号冲口而出。 冒号因势利导:“每个电器元件具备单一的功能,正如过程式中的函数;每个电器产品是对多个相互关联的电器元件的封装,正如OOP中的对象。同样的电器元件可用于不同的电器产品,具有高度的可重用性,而电器产品重用性低,但易用性高。” 众人犹自将信将疑。 冒号课堂§2.3:对象范式(3)时间:2011-06-25 BlogJava xyz98“对一个没有独立思考习惯的人来讲,与其说他认同一个理论,倒不如说他认同该理论倡导者的权威。而在他仰视权威的同时,也把自己的思想交托给了权威。”冒号颇具犬儒之风,“你们可以怀疑我的观点,但绝不可放弃自己的思考。请注意,这就是我在第一堂课提到的精神——批判精神。” 冒号这时停了下来,与在座的每位逐一对视。他仿佛想通过目光把这种精神注入到每个人的身上,就像武侠小说中通过手掌将内功传输给他人一样。并不是每个人都能理解冒号的用心,但都或多或少地感受到一种异样的气氛。 “关于OOP今天就谈到这里。”冒号恢复了常态,“请不要奇怪为何如此流行的编程范式我却一带而过,那是因为你们对它相对比较熟悉,而我们这一轮只是在作热身运动,以后再作专项训练。在结束之前,我们引进一个新视点:过程式编程的模块以函数为单位,OOP的模块以对象为单位,二者的区别是:函数是被动的实体,对象是主动的实体。过程式程序的世界是君主制的,主函数是国王,其他函数是臣民,等级分明,所有臣民在听命于上级的同时也对下级发号施令,最终为国王服务;OO程序的世界是民主制的,所有对象都是独立而平等的公民,有权利保护自己的财产和隐私并向他人寻求服务,同时有义务为他人提供承诺的服务,公民之间通过信息交流来协作完成各种任务。” 众人顿觉耳目为之一新。 ,插语 [1]所谓基于对象的,有两种不同的涵义。一种指“限制版”的OOP,即具备对象概念,但不具备OOP的一些其他特征,如继承或多态等。Visual Basic正属于此类。另一种指基于原型的(prototype-based),或者说基于实例的(instance-based),而不像通常OOP是基于类的(class-based)。JavaScript、NewtonScript、MOO等语言即属此类。 [2]这里所谓“纯粹的OOP”并非指一般意义上的“pure OOP”(即所谓的“一切都是对象”),而指单纯的、不含其他范式的OOP。 [3]出自Fred Brooks的著名文章《no silver bullet》。他认为没有一项技术或管理方法的发展能保证,在十年内让软件的生产力、可靠性或简洁性等方面提高一个数量级。常用来泛指没有一项软件技术或方法是万能的。 [4]更准确地说,这是前文提到的结构化编程思想。 。总结 OOP大多是命令式的,但也有函数式的和逻辑式的OO语言。 OOP的核心思想可以归纳为:以数据为中心组织逻辑,将系统视为相互作用的对象集合,并利用继承与多态来增强重用性。 OOP既不能脱离其他范式,也绝非适用于一切应用。 可重用性、可扩展性和灵活性是所有范式和语言的共同目标,并非OOP所独有。 与其说OOP更具重用性,不如说更具易用性。 过程式编程重在过程,自顶向下,逐步求精。 对象式编程重在数据,自底向上,逐步实现。 过程式程序的世界是君主制的,OO程序的世界是 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |