从Matrix看面向对象

从Matrix看面向对象

ID:38652148

大小:40.50 KB

页数:7页

时间:2019-06-17

从Matrix看面向对象_第1页
从Matrix看面向对象_第2页
从Matrix看面向对象_第3页
从Matrix看面向对象_第4页
从Matrix看面向对象_第5页
资源描述:

《从Matrix看面向对象》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、从Matrix看面相对象——使用面相对象编程构件Matrix系统可行性分析南京大学软件学院软件谷分院邱明胜【摘要】Matrix出自于电影《黑客帝国》同时也是人们对虚拟现实技术的一种展望,而面向对象编程则是时下最为流行的编程方法之一。本文试图通过分析Matrix与面向对象的特点,来探讨使用面相对象编程构件Matrix系统可行性。【关键词】Matrix面向对象封装继承多态开闭原则1999年《黑客帝国》横空出世,5年后《黑客帝国:重装上阵》、《黑客帝国:矩阵革命》相继袭来。一时之间《黑客帝国》风靡全球,而Matrix则成了程序员们热议的话题。

2、在《黑客帝国》中,Matrix是机械世界奴役人类的母体,它通过刺激人类的神经系统,使人们生活在一个虚拟世界中而不自知。在Matrix中有城市,有自然风景,有日升日落,甚至还设定了各种社会关系。应当说Matrix代表了人类所能理解的人工智能的最高水平。那么Matrix真的可构件吗?本文试图用时下流行的面向对象技术分析Matrix中的部分场景,来探讨面向对象编程构建Matrix的可行性。一、Matrix——焦油坑?FrederickP.Brooks,Jr在他的《人月神话》中将大型系统开发比作一个焦油坑,无数人或者团队试图征服它,却最终深陷泥

3、淖。Matrix会不会成为另一个焦油坑?毫无疑问Matrix是一个超大型系统,因此它具有所有大型系统无可回避的问题:复杂度、一致性、可变性和不可见性。1.复杂度BruceEckel等人都认为,复杂度是软件系统的主要问题或必要属性。它的复杂性在于它所描述的问题域的复杂性。毫无疑问人类社会活动是最为复杂的,何况Matrix系统不仅包含了人类社会活动,还有日升日落这样的自然系统,其复杂性不言而喻。2.一致性一千个读者就有一千个哈姆莱特。同样,一千个设计者必然会导致一千个Matrix。复杂系统不可能是一两个人的车库产物,它必然由多个开发小组协作

4、完成。是否有统一的调用接口,编程风格,文档规范等等,必将影响到整个项目组的工作进度,以及代码整合后的质量。机械大帝应该由衷感谢,Matrix只有一个架构师,不然恐怕Matrix几个世纪也开发不出来。3.可变性几乎所有的软件都会面临变更压力,这些压力来自于用户不断变更的新需求。Matrix也不例外,为了维护系统的稳定性,至今Matrix已经发布了6个版本(暂时先不考虑最后一次升级),显然架构师的策略更暴力一些,因为他选择的是直接推到重来。这在现实生活中也是存在的,但是更多数的情况是,我们选择根据用户的需求扩展系统的功能,除非变化是在太大(

5、包含硬件方面或者问题域方面)。为了时刻准备好这种变化,我们在系统开发时,就得预留出可修改的空间。这显然更考验设计师的功力。4.不可见性软件产品与其他产品最大的不同就在于它的不可见性。一栋建筑有筑基,砌墙,封顶,装修等建筑过程,并且这些过程都是可见的。即便是在施工前我们也可以通过图纸,模型来一窥这栋建筑未来的面貌。然而软件却不行,即便我们拥有UML这样的工具,它的表现力也是极为有限的,根本无法具象的向人们说明我们要开发的是个什么样子的产品,我们的进度怎样。这就给软件的管理以及理解上带来了难度。如果不能寻找出以上问题的解决方案或者替代方案,

6、那么Matrix的构建无疑将是一个及其痛苦的过程。一、为什么是面向对象早在20世纪60年代面向对象的编程语言已经出现——Simula。它最早定义了类的概念,随后Smalltalk80被公认为第一个纯面向对象语言。80年代关于面向对象的研究,极大的促进了面向对象分析,面向对象编程的发展。如今面向对象思想已经大行其道,面向对象编程成了主流的编程方法。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示

7、为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。从面向对象的定义来说,用人类自然的思维方式去构造一个虚拟的人类社会显然再合适不过,这似乎印证了一句老话“从群众中来到群众中去”。面向对象思想致力于用人类的思维去构件软件,这虽然没有从根本上降低软件的复杂度,却方便了人们对于系统的理解,减少了程序员们在沟通过程中所花费的时间。同时面向对象编程主张面向接口编程或者称为契约式编程,这就在一定程度上保证了一

8、致性。工作在不同层次上的开发人员只要严格按照接口规范编程,就能保证工作在不同层级上的开发人员的代码能够顺利的组装。一、Matrix中的面向对象尽管我们无从得知Matrix是否是用面向对象编程来进行开发的,但

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。