论坛首页 Java企业应用论坛

敲响OO时代的丧钟!——DJ对于数据持久化的支持(3)

浏览 192929 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-06-08  
gigix 写道
sunr 写道
OO死与不死不取决于某几个人的论调,IT业的发展不是某几个人能左右的,就像人类社会的不断发展一样。
个人认为OO类似于原子论,而其他的衍生产物都是基于此之上的。正如helloworld所说,OO不会灭亡,只会一点一点的退居幕后,成为更基础的东西。
“万事万物皆对象”

为什么万事万物皆对象?“帐户”可以是对象,“钱”是对象就多少有点牵强,那么“A帐户转100块钱给B帐户”这事如何是对象?

OO的确不是万能的,事实上也没有什么OX可以是万能的,现实世界的复杂度直接决定了无法用纯粹的OX来进行描述,这就好比用2个联立方程式永远解不出3元方程。所以
OO在概念上的本质导致它不能描述SOA类型的需求。OO可以完美的描述被动事物,但对于主动事物或非实体事物往往只能模糊地去模拟,所以在代码中常有N多MANAGER类,而MANAGER本身的职责又很杂。另外就是双向关系,如果用OO,那么放在A类或B类都行,但又都不合适,我想大多数人也有同感吧。
我觉得只有AOP才能清晰地引入职责这个概念,因为它是跨越OBJECT概念的,可以完美地将“规则”引入到实体世界中
(我个人认为规则才是现实世界的主线,物体和功能都是依附它之上的)
0 请登录后投票
   发表时间:2005-06-08  
yuzhenxin 写道
“A帐户转100块钱给B帐户”:这个是对象之间的行为。或者可以认为是消息、交互等等。没有人会认为“A帐户转100块钱给B帐户”是对象。

举个TIJ中的例子:
Light 类有 on() 和 off() 两个方法。同样,没人会认为 on() 和 off() 是对象哟。  :)


我当然知道应该是这样说。那么好了,“转帐”这件事情是非常重要的事情,是系统真正在做的事情。类似的,“记录日志”这件事情是重要的,“日志工具”并不重要;“管理事务”这件事情是重要的,“事务基础设施”(例如JTA/JTS)并不重要;“安全检查”这件事情是重要的,“安全基础设施”(例如JAAS)并不重要。而OO在这些时候,建模了不那么重要的“用什么东西做”,对重要的“做什么”却没有建模。明白我的意思了么?
0 请登录后投票
   发表时间:2005-06-08  
gigix 写道
我当然知道应该是这样说。那么好了,“转帐”这件事情是非常重要的事情,是系统真正在做的事情。类似的,“记录日志”这件事情是重要的,“日志工具”并不重要;“管理事务”这件事情是重要的,“事务基础设施”(例如JTA/JTS)并不重要;“安全检查”这件事情是重要的,“安全基础设施”(例如JAAS)并不重要。而OO在这些时候,建模了不那么重要的“用什么东西做”,对重要的“做什么”却没有建模。明白我的意思了么?

呵呵,想说AOSD直说好了。
OO对于做什么是有建模的,协作图和序列图就是干这事的,不过在实现层次没有好的表达方式,这正是Aspect弥补的空白。
0 请登录后投票
   发表时间:2005-06-08  
"我当然知道应该是这样说。那么好了,“转帐”这件事情是非常重要的事情,是系统真正在做的事情。类似的,“记录日志”这件事情是重要的,“日志工具”并不重要;“管理事务”这件事情是重要的,“事务基础设施”(例如JTA/JTS)并不重要;“安全检查”这件事情是重要的,“安全基础设施”(例如JAAS)并不重要。而OO在这些时候,建模了不那么重要的“用什么东西做”,对重要的“做什么”却没有建模。明白我的意思了么?"

我感觉用模型去解决问题本身就有弊端, 搞数理可以来谈谈. 不论做简单的还是复杂的事都 要先将所有细枝末节都考虑进去. 而不能先将小问题解决后 然后组合. 复杂 庞大的模型并不能解决所有的实际问题 而且使得程序变得缺乏灵活性 难以更改难以维护.

比如转帐这件很简单的事情 要是放到OO里面 不同的系统里可能 为了适应自己原先的OO模型  转帐的部分可能会被设计的五花八门. 其实这只需要一个简单的web服务 还有报税等等.

OO的思想的连接部分太紧密 不如WS灵活  我想编程会从现在的类调用上升到对WS的直接调用. WS就是我们现在的class.
0 请登录后投票
   发表时间:2005-06-08  
winterwolf 写道

我感觉用模型去解决问题本身就有弊端, 搞数理可以来谈谈. 不论做简单的还是复杂的事都 要先将所有细枝末节都考虑进去. 而不能先将小问题解决后 然后组合. 复杂 庞大的模型并不能解决所有的实际问题 而且使得程序变得缺乏灵活性 难以更改难以维护.

所谓模型并不是复杂 庞大的,除非必要,一般模型的设计都不会去设计成那样。模型与灵活性不矛盾,这里,经验是很重要的。大师们之所以是大师,就是因为他们有很多实践的宝贵经验和知识。我想他们想都没想过要建复杂 庞大的模型。
winterwolf 写道

比如转帐这件很简单的事情 要是放到OO里面 不同的系统里可能 为了适应自己原先的OO模型  转帐的部分可能会被设计的五花八门. 其实这只需要一个简单的web服务 还有报税等等.

这里有个系统的概念。
从OO的角度讲,系统是由大大小小的O组成的,在这些O之间有消息、有关系和还有规则等等。
服务一般为系统对外Publish的Method,这些服务往往由1个以上的O来提供,而系统中还有许多O,分别是复杂Helper,DB Access,UI、Workflow等等,它们这些隐藏的O,默默地支撑着提供服务的O。
当系统需要提供新的服务时,就需要建立新的O,如果这些服务是原来服务的升级版,则可以重构、继承甚至拷贝等手段来建立新的O。
0 请登录后投票
   发表时间:2005-06-08  
简要提纲:
1、基本概念
2、面向过程的统一世界
3、面向对象的来由与神话的诞生
4、关系型数据库的独立发展
5、对于OO的修补与OO的变质
6、在OO与数据库之间的桥梁
7、关于OO缺陷的初步总结
8、新方案的理论分析
9、一个实际已经存在的新方案的分析
10、展望未来的发展方向
11、鸣谢
0 请登录后投票
   发表时间:2005-06-08  
有很多人在讨论OO万能的问题,这里包括两个方面。一种是被批判的迷信OO技术的人,另一种反之、而我仍要批判的人。
以我的知识很难用一个准确的词汇来说明我的观点,也许哲学家或者数学家会说得清楚一点。我想用“范畴”这个词汇,OO是不是适合你,看你的问题是否落在这个范畴里,就好像我们说得计算机,人工智能分别属于不同的范畴。存在很多东西有不同的认识基础和理论基础,用于解决不同范畴的问题。
0 请登录后投票
   发表时间:2005-06-08  
话说穿了,OO就是静态语言寻求动态功能的一条途径。

讨论这个问题,我还是建议去看SICP,你会发现所有OO具有的思想SICP都讲道了,但是SICP里面从来就没有出现过一点OO的概念和形式。

庄表伟,给软件开发下定义,其实试图给自己画个场子,好在里面耍猴玩,大家别当真。
0 请登录后投票
   发表时间:2005-06-08  
老实说,我觉得这种文章的意义不大,目标太大,范围太广,以至根本就不可能射中目标。

说到底,OO也只不过是众多方法工具的其中之一,OO之所以被广泛推崇,主要还是因为与其他工具相比,OO是属于那种比较全面、各项能力值都比较平均的泛用型工具。其他人可能会提出在某些方面具备突出优点的方案,但这些方案很可能是以损失某些特性为代价的。能够全面超越OO的方案只能是建筑在OO之上的更高层次的方案,正如PO一样,OO并不是PO的对立面,PO只是成为了OO的一部分,OO并不会损失PO的特性。
0 请登录后投票
   发表时间:2005-06-08  
先明确一下OO是什么。是明确的语言,技术还是某种思想。先说清它的内涵和外延。

引用
OO就是静态语言寻求动态功能的一条途径

不敢苟同。C++的想法
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics