OO以后是什么?

原创 2004年09月24日 17:13:00

OO以后是什么?

  按照技术由概念到原型再到产品的5--5--5规则,面向对象技术现在已经走向成熟,是时候该考虑OO以后是什么了。在这个还没有出现新技术标准的时期,每个人都有权力去思考,以下就是我关于OO以后的思考。

  OO之后是什么呢?我认为是FO--Function Oriented(面向职能)。这里的Function不同于我们在当前编程所用的函数Function。这里的Function指职能模块。所谓职能模块,是指可独立完成特定任务,而对无力完成的任务可自行找到具备完成该任务功能的其它职能模块,并与之建立联系以合力完成工作的功能体。

  在阐述我的理由之前,先来看一看我们经历了什么。我们首先经历了PO--面向过程,然后是OO--面向对象。为什么会是这样一个过程呢?因为它是一个由具体变得越来越抽象的过程。人为了更轻松的解决问题,总是希望尽可能抽象的描述问题、解决问题,过于具体有时候会使人感到很痛苦。在面向过程中,我们的方法是“先做什么,再做什么,最后做什么”,这就好像一个成年人做事的方法,他知道每一步该干什么,它按那个步骤去干。在面向对象中,我们的方法是“不管对象是怎么实现的,我们只需知道它可以干什么,怎么让它去干”,这就像一个孩子的做事方法,他不知道那个东西是怎么来的,他只知道那个东西可以用来干什么以及利用它去干他想干的事。管它板凳是怎么做的呢?它可以拿来坐就行啦!更小的孩子是怎么做的呢?他们甚至还不知道板凳可以拿来坐。很简单,“妈咪,我要……”管他妈妈要去干什么或要请谁帮忙干什么呢?反正妈妈会把一切办好,妈妈是万能的。

  再来看一看我们的工业生产。一开始是手工作坊,一个人从头做到尾,一步一步地做,就好像OP。然后是机器化大生产,各台机器在那造着不同的零件,然后将它们组装到一块;造零件的只知道一个零件单独的作用,但不知道它到底是用到自行车上还是飞机上;组装的则不用知道零件是从哪来的,是谁做的;这就好像是OO。现在的模式是什么呢?公司接到生意,再将生意分散委托给别人做;需要法律顾问,到律师楼请律师;需要企划,找公共关系公司;需要做广告,找广告公司;生产找专门的制造公司;自己公司需要做的就是接到生意,干自己公司可以干的,将干不了和自己干效益不高的部分交给专门的公司干。

  职能模块就是“妈妈”,就是现在的公司。它干自己可以干的任务;对于干不了的,它知道到那可以找到能干这个任务的模块,并与之协作共同完成工作。顾客将问题交给软件人员,软件人员完成包含职能模块A的程序并将之提交给顾客。顾客使用该程序解决问题,模块A完成它能完成的部分,不能完成的部分由A自动去寻找可以完成剩余部分的B、C、D,B、C、D又可以去寻找E、F、G、H……再一级一级反馈回到A,由A组装成结果提交给顾客。

  以上是通过其它领域的情况推出OO以后是FO的,那么在我们的计算机领域有些什么来支持这种想法呢?大家知道,在计算机领域关于程序有过三个公式:

  1、程序=数据结构+算法

  2、程序=逻辑+控制

  3、程序={对象1,对象2,……,对象n}  对象=数据结构+方法

  第一个公式是FO时代提出的,第三个公式是OO时代提出的。可以看出第三个公式中关于对象的定义与第一个公式中程序的定义的相似性。事实上对象和以前的程序的确很相似,它所缺乏的就是程序的控制结构,因此不论是框架编程还是控件编程,都需由程序员来完成控制结构。现在我们可以想象,数据结构和方法相结合产生对象,下一步干什么呢?当然是将控制结合进去。这就是我们的职能模块,结合了控制的、自动的、智能的模块。

  大家知道,不久前Microsoft公布了其“.net”计划。它以后的产品将在本地机上实现基本的功能,而更高端的功能将由程序向Microsoft的服务器提出请求,由服务器来完成。这虽然是由客户端软件向固定地址提出请求,不是由模块自身完成且缺乏智能性,但是我们仍然可以将其看作是FO的一种很原始很原始的雏形。

  实现FO需要什么呢?需要高速智能网络、智能接口、分布式技术、并行技术,最重要的是需要一个国际化的管理机构。

  为什么需要这些呢?很显然,面向职能是基于全球性的Internet的,这就必然用到分布式技术。大家知道,分布式技术最大的问题就是网络上大量信息的传输,这需要一个高速的Internet。信息在网络上消耗了时间,用并行技术可弥补回来,以空间换时间。职能模块要求自己去寻找可帮助其完成任务的其它模块,当前的网络办不到这一点,这需要的是一个智能网络。模块A需要其它模块与之协作时,要将其要求提出并发消息到网络上的模块搜索器,模块搜索器将找到一到多个具有所要求功能的模块,模块A要找到最符合自己要求的模块B,并按B的接口要求发送B所要求的信息;与此同时,B要能很好的描述自己的功能,很确切的提出自己的要求,并能从A发送来的消息中提取自己需要的信息,这就要求智能模块拥有智能接口。智能模块的标准的定义、大量模块的登记、模块信息的组织、模块使用的协调等等都需要一个国际化的组织来进行管理。

  我们现在又有什么来支持这些呢?提到分布式计算,当然会想到CORBA。事实上,CORBA和我们这职能模块的工作方式是很相似的。使用职能模块,在模块完成不了工作时,通过网络向其它模块求助。CORBA应用程序也是通过向Smart Agent发送消息,再通过smart agent找到相应的CORBA对象来完成工作。但CORBA对象的接口是如此的确定,大量的控制工作仍是由程序员完成。职能模块的接口是模糊的、智能化的,一切控制由模块自己去完成。寻找模块必须通过高速智能网络。高速现在已越来越不成为问题了。而智能化,由CISCO公司提出的基于DEN的智能网络解决方案让人看到解决问题的曙光。最麻烦的是智能接口,这需要极端先进的人工智能技术。人工神经元网络也许是解决问题的途径,但一切离彻底解决问题还太遥远。

  当一切都解决时,我们桌面上的应用程序将变得如此的简单,如此的相似。它们拥有不同的界面,但它们所做的事情都一样:接受命令,联系模块搜索器,将一切具体的工作都交给模块供应商提供的职能模块去干吧!

  在机器能理解自然语言的时候,用语言命令计算机工作的时代自然也就到来了!

在保留http://www.javajia.com原出处的情况下,欢迎转载!

OO以后是什么

OO以后是什么Tinkler(本文转载自软件工程专家网www.21cmm.com,不代表gigix观点)   按照技术由概念到原型再到产品的5--5--5规则,面向对象技术现在已经走向成熟,是时候该考...
  • gigix
  • gigix
  • 2002年03月25日 09:31
  • 1234

OO,OO以后,及其极限

1、什么是软件开发?   软件开发的过程就是人们使用各种计算机语言将人们关心的现实世界映射到计算机世界的过程;   现在的计算机的数学理论基础是由计算机的开山鼻祖,大名鼎鼎的图灵于1937年提出的图灵...
  • gaofeng2000
  • gaofeng2000
  • 2004年07月21日 16:16
  • 1397

OO技术三大特点

面向对象(Object Oriented,缩写为OO)是现代软件技术的精髓。从早期的SmallTalk到如日中天的Java,都渗透着面向对象思想。 OO具有三大特性:封装性、继承性和多态性。想掌握...
  • wangjunwen1990
  • wangjunwen1990
  • 2015年11月22日 14:39
  • 648

PHPOO知识点总结

 面向对象:认识或认知事物的一种方法--->类比 对象是类进行实例化后的结果 object -->物质,事物 类 -->抽象:属性-->外观   行为-->做的事(默认情况下的是缺少了该属...
  • ailxxiaoli
  • ailxxiaoli
  • 2016年07月09日 20:43
  • 940

JAVA程序员的OO思想

写程序大概2年了,OO思想倒是思考过,也应用过,但是到如今没有系统的总结过,所以感觉理解的不够到位,想借此写成博客,今后不断的完善。 1.战略和战术 战略是指对军事全局的策划和指导,战术是指作战的...
  • rnZuoZuo
  • rnZuoZuo
  • 2014年03月29日 14:38
  • 1112

我的JS OO如是观

很久没写博客了,突然想起 JS 的 OO 自己有一个想法,并实现了,于是就拿来作新博文的内容。 关于 JS 的 OO,这里有一份列表,均是我以前总结这方面的心得与体会,不正之处,应要提出。 J...
  • zhangxin09
  • zhangxin09
  • 2011年05月31日 17:48
  • 5143

浅谈OO思想

最近看到公司评级中,大量提到了OO思想,特别是开发,虽对我们运维并未要求,但看到这篇文章不错,就自己理解下。 object oriented(面向,面对)(针对分析,需求分析,功能实现)(面向对象的...
  • bbsyi
  • bbsyi
  • 2016年01月26日 09:47
  • 1843

【OO】全面理解 ABAP Object Step by Step (一)

1,传统的ABAP开发: ABAP 运行环境 报表开发的模块化: REPORT ZXXXX. 全局变量定义. 内表/工作区定义. SELETION-SCREEN定义. INITIAL...
  • hackai886
  • hackai886
  • 2012年09月07日 19:02
  • 4500

OO ALV常用功能完整简例(热键单击…

OO ALV 常用功能简介 目录 OO ALV 常用功能简介... 1 一、所用类:... 2 二、效果图:... 2 单击... 2 双击... 2 F4帮助... 3 ...
  • senlinmu110
  • senlinmu110
  • 2014年01月22日 09:24
  • 1058

一些常见面试OO design题目总结

最近很多公司面试喜欢问一些OO design的题目, 我总结了一些比较高频的题目, 需求不一定准确, 设计的也不一定好, 欢迎提出建议.  1. 电梯设计  2. 停车厂设计  3. 通用卡牌游戏bl...
  • qq508618087
  • qq508618087
  • 2016年11月24日 06:09
  • 2772
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OO以后是什么?
举报原因:
原因补充:

(最多只允许输入30个字)