- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OO真经关于面向对象的哲学体系及科学体系的探讨
OO真经——关于面向对象的哲学体系及科学体系的探讨
/leoo2sk/archive/2009/04/09/1432103.html
目录 Catelog
序言 Perface
真经第一章:世界 Waltanschauung
真经第二章:抽象 Abstraction
真经第三章:层次 Arrangement
真经第四章:继承 Inheritance
真经第五章:耦合 Couple
真经第六章:运作 Moving
真经第七章:建造 Build
真经第八章:刻画 Delineate
真经第九章:模式 Pattern
真经第十章:悟道 Doctrine
后记 Afterword
参考文献 Reference
序言 Preface
“佛曰:苦海无涯,回头是岸。——佛教用语”
面向对象(Object-Oriented),这是一条令无数开发人员魂牵梦绕的短语。几乎每个软件分析师、设计师和程序员都时刻将它铭记于心,对它顶礼膜拜。然而,对大多数人来说,它又像是天边的霞光,可望而不可及,无数次伸出双手,总是抓不住这虚无缥缈的圣物。于是,我们依然每天将面向对象高高供其,却始终无法悟得其道,更不要谈娴熟运用其道法了。
面向对象像一滩苦海,无数人游弋其中,却久久不得其要领;类、对象、继承、多态、接口、UML、设计模式……无数概念看得我们眼花缭乱,却也悟不透其真谛。佛教有云:苦海无涯,回头是岸。如果置身苦海中无法脱离,那么,我们是否应该提高一个层面去看这片苦海:从哲学及科学的角度,去审视面向对象。
曾有人说:艺术的极致是科学,科学的极致是哲学。此话不无道理,牛顿、爱因斯坦等科学界泰斗,在其后期都不约而同地转向哲学研究。当然,这里本人无意更不敢将自己与上面两位大师相提并论,而且本人也不奢求此文能成为一篇颇有思想的佳作。只不过,本人在平时的实践和思考中,略有小得,于是,在这里拿出,和大家一起分享讨论。虽然肤浅,但希望本文能成为一丝波纹,为各位脱离苦海提供一点点的推动作用。
真经第一章——世界 Weltanschauung
“世界观(德文:Weltanschauung)意为‘着眼世界之上’,是人们对世界的总的根本的看法。任何哲学问题的探讨,归其出发点和本源,都是世界观的问题。什么样的世界观决定了什么样的哲学观点。——马克思”
1.1、看世界
我们知道,哲学领域中,最根本的对立是唯物主义和唯心主义的对立,而附属其下,又有许多对立,如形而上学和辩证法的对立、可知论和不可知论的对立等等。这些对立形成了哲学的基本体系、派别和出发点。实际上,这些对立,都是世界观的对立。世界观,简而言之即如何看待这个世界。世界观是一切哲学问题的本源和出发点。
同样,在程序世界里,也有着不同的世界观。而这其中最根本的对立便是过程论和对象论的对立,这个对立,衍生出了面向过程和面向对象两种方法论。于是,要真正理解面向过程和面相对象,我们就不得不先深究一下程序世界中这两种世界观。
首先要提到的是,不论是过程论还是对象论,都承认一点,那就是程序世界本质上只有两种东西——数据和逻辑。数据天性喜静,构成了程序世界的本体和状态;逻辑天性好动,作用于数据,推动程序世界的演进和发展。尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,过程论和对象论的观点截然不同。
过程论认为:数据和逻辑是分离的、独立的,各自形成程序世界的一个方面(Aspect)。所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。
对象论认为:数据和逻辑不是分离的,而是相互依存的。相关的数据和逻辑形成个体,这些个体叫做对象(Object),世界就是由一个个对象组成的。对象具有相对独立性,对外提供一定的服务。所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。
1.2、一道智力题引发的思考
上面的描述也许有些不够直观,那么,下面我们通过一个实际的例子,直观感受一下在两种世界观下,对同一件事物是怎么看的。
大家都听过这么个智力题吧:
说有甲、乙、丙三人住店,一间房30。于是每人10元,共计给店老板30元住进一间房。后来店老板发现弄错了,房价应该是25元,于是给小二5元让小二退给房客。小二黑心,贪污了2元,退给甲乙丙每人1元。这样房客每人付了10-
文档评论(0)