lecture04-OO_Concept_Summary.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
lecture04-OO_Concept_Summary.ppt

第4章 OO Concept Summary 辛国栋 xinguodong@163.com 研究院529,5687921 从哲学思想考虑面向对象(讨论) 从哲学思想考虑面向对象的起因 面向对象概念众多 对象、类、封装、继承、多态、接口、UML、设计模式……无数概念看得我们眼花缭乱,却也悟不透其真谛。 “佛曰:苦海无涯,回头是岸” 应该提高一个层面去看这片苦海:从哲学及科学的角度,去审视面向对象 艺术的极致是科学,科学的极致是哲学 从哲学思想考虑面向对象(讨论) 程序世界的世界观 “世界观意为‘着眼世界之上’,是人们对世界的总的根本的看法。任何哲学问题的探讨,归其出发点和本源,都是世界观的问题,什么样的世界观决定了什么样的哲学观点。”-马克思 在程序世界里,也有着不同的世界观。 最根本的对立便是过程论和对象论的对立 这个对立,衍生出了面向过程和面向对象两种方法论。 于是,要真正理解面向过程和面相对象,我们就不得不先深究一下程序世界中这两种世界观。 从哲学思想考虑面向对象(讨论) 过程论还是对象论 两者承认一点,那就是程序世界本质上只有两种东西——数据和逻辑。 数据天性喜静,构成了程序世界的本体和状态; 逻辑天性好动,作用于数据,推动程序世界的演进和发展 尽管上述观点是统一的,但是在数据和逻辑的存在形式和演进形式上,过程论和对象论的观点截然不同。 从哲学思想考虑面向对象(讨论) 过程论认为: 数据和逻辑是分离的、独立的,各自形成程序世界的一个方面(Aspect)。 所谓世界的演变,是在逻辑作用下,数据做改变的一个过程。 这种过程有明确的开始、结束、输入、输出,每个步骤有着严格的因果关系。 过程是相对稳定的、明确的和预定义的,小过程组合成大过程,大过程还可以组合成更大的过程。 所以,程序世界本质是过程,数据作为过程处理对象,逻辑作为过程的形式定义,世界就是各个过程不断进行的总体。 从哲学思想考虑面向对象(讨论) 对象论认为: 数据和逻辑不是分离的,而是相互依存的。 相关的数据和逻辑形成个体,这些个体叫做对象(Object),世界就是由一个个对象组成的。 对象具有相对独立性,对外提供一定的服务。 所谓世界的演进,是在某个“初始作用力”作用下,对象间通过相互调用而完成的交互;在没有初始作用力下,对象保持静止。这些交互并不是完全预定义的,不一定有严格的因果关系,对象间交互是“偶然的”,对象间联系是“暂时的”。 世界就是由各色对象组成,然后在初始作用力下,对象间的交互完成了世界的演进。 从哲学思想考虑面向对象(讨论) 过程论与对象论小结???? 过程论和对象论是两种看世界的观点,没有孰对孰错、孰好孰坏之分。 过程论和对象论不是一种你死我活的绝对对立,而是一种辩证统一的对立,两者相互渗透、在一定情况下可以相互转化,是一种“你中有我、我中有你”的对立。 如果将对象论中的所有交互提取出来而撇开对象,就变成了过程论,而如果对过程论中的数据和逻辑分类封装并建立交互关系,就变成了对象论。 从哲学思想考虑面向对象(讨论) 过程论与对象论小结???? 过程论相对确定,有利于明晰演进的方向,但当事物过于庞大繁杂,将很难理清思路。 因为过程繁多、过程中又有子过程,容易将整个世界看成一个纷繁交错的过程网,让人无法看清。 对象论相对不确定,但是因为以对象为基本元素,即使很庞大的事物,也可以很好地分离关注,在研究一个对象的交互时,只需要关系与其相关的少数几个对象,不用总是关注整个流程和世界。 但是,对象论也有困难。例如,如何划分对象才合理?对于同一个驱动力,为什么不同情况下参与对象和交互流程不一样?如何确定?其实,这些困难也正是面向对象技术中的困难。 从哲学思想考虑面向对象(讨论) 过程论与对象论小结???? 综上,我们知道在程序世界中,存在着过程论和对象论两种对立的世界观,并且其各有千秋,无法定夺孰好孰坏。 但是,对象论似乎更有助于分析规模较大的事物。 从哲学思想考虑面向对象(讨论) 面向对象的四大特征 抽象(Abstract)、封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism ) 从哲学思想考虑面向对象(讨论) 对象论-抽象(Abstraction) “金、木、水、火、土元素,构成宇宙万物,并作为各种自然现象变化之基础—五行说” 五行相生相克,相互交织结合,组成了大千世界。 虽然从现代科学角度看,五行说并不完全准确,但其有一点事非常正确的,那就是世界首先有基本元素,然后基本元素还要衍生出各种其它东西。 从哲学思想考虑面向对象(讨论) 对象论-抽象(Abstraction) 类是怎么来的? 从认识论来说,首先有具体认知能力,才能有抽象认知能力,抽象认知能力是一种高层的,人类特有的认知能力,它使我们可以从大

文档评论(0)

xinshengwencai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档