论坛首页 Java企业应用论坛

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

浏览 192928 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-29  
to:robbin

你没有仔细看我的文字,我只是点出来,实际需要这么多步骤,而不是我增加了新的步骤。

现在的EclipseIDE,能够支持在save代码的时候,立即编译,因此编译这一步对于用户是透明的。

将来我的设想的DJ开发,自然也是要IDE支持的,在用户save之后,立即进行预编译与编译两个步骤,对于用户同样是透明的。

至于编译为debug或者release,本来就是IDE编译选项中的一个简单选择,对于用户来说,也只需要在最后正式发布时,去修改一下选项而已。

明确指出实际上存在这些步骤,并不是坏事,更会带来思维清晰的好处。
0 请登录后投票
   发表时间:2005-07-29  
庄表伟 写道
还没有介绍完呢,channel不但可以静态的定义在dclass中,也可以动态的插入到一个动态对象之中,但是这需要在dclass定义时,明确允许插入新的channel。

实在看不出你这里的channel同aspect有多少相似的地方。假如我需要在datatype user中添加新的属性,该如何处理阿?如果加入aspect(channel)扩展需要dclass允许的话,这无疑意味着dclass知道自己需要扩展,这种假设在实际开发中存在吗?
我开始感觉到DJ仿佛是一盘消化不良的大杂烩,里面什么都有,但是大多数都没有用对地方,但愿后面的论述会驱散我的这种感觉。
0 请登录后投票
   发表时间:2005-07-29  
一种新的语言(8)

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry
0 请登录后投票
   发表时间:2005-07-29  
庄表伟 写道
一种新的语言(8)

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry


看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了.
0 请登录后投票
   发表时间:2005-07-30  
charon 写道
庄表伟 写道
一种新的语言(8)

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry


看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了.


回错帖了
PI与我的DJ有关系吗?
0 请登录后投票
   发表时间:2005-07-30  
庄表伟 写道
charon 写道
庄表伟 写道
一种新的语言(8)

http://spaces.msn.com/members/zbw25/Blog/cns!1pA6-3FOo9yNp_4lmEHxdDqA!353.entry


看到这里,真诚希望楼主去了解一下PI演算,当然这个PI是3.1415926的PI,只不过这里打不出来,见笑了.


回错帖了
PI与我的DJ有关系吗?


关于 Channel 的内容,有那么一点点关系,呵呵。
0 请登录后投票
   发表时间:2005-07-31  
老庄的DJ别的地方没看明白,这里似乎懂一点了。面向对象的Observer模式实现在分发消息时需要手工分发,也有一些使用继承方式减少分发代码的实现方式。但是都不及 AOP方式简洁,灵活。老庄是想把AOP实现到语言级别上,特别是对Observer模式提供语言支持。这一点确实很有前途地。
0 请登录后投票
   发表时间:2005-07-31  
to:charon
老兄啊,你可真是惜墨如金呀,能不能多讲两句呢?

to:hitdongbin
谢谢你的回帖,我会接着写一篇blog,专门介绍在语言级引入event的意义的。
0 请登录后投票
   发表时间:2005-08-01  
庄表伟 写道
event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及越发强大的各种动态语言,开始来做这方面的努力。而这些技术和语言,在试图打破封装的时候,做得并不彻底,往往还是“从OO的基本语义出发,做一些有益的补充”。而我的打算则是,彻底反思封装的意义,然后采用一种新的机制来代替静态封装的OO技术。

AOP怕不是来打破这种封装的,恰恰相反它加强了封装的程度,就是在同一个对象里可以分成好多方面。并且他们可以毫不相干。即使是跨越多个对象的Aspect也是基于某个关注点的封装,与其他方面绝少关系。
如果你是认为静态分类是一个弱点还可以理解,扯上什么打破封装就丝毫没有道理。
0 请登录后投票
   发表时间:2005-08-01  
partech 写道
庄表伟 写道
event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及越发强大的各种动态语言,开始来做这方面的努力。而这些技术和语言,在试图打破封装的时候,做得并不彻底,往往还是“从OO的基本语义出发,做一些有益的补充”。而我的打算则是,彻底反思封装的意义,然后采用一种新的机制来代替静态封装的OO技术。

AOP怕不是来打破这种封装的,恰恰相反它加强了封装的程度,就是在同一个对象里可以分成好多方面。并且他们可以毫不相干。即使是跨越多个对象的Aspect也是基于某个关注点的封装,与其他方面绝少关系。
如果你是认为静态分类是一个弱点还可以理解,扯上什么打破封装就丝毫没有道理。


老庄封装的概念可能跟楼上的不一致,所以这一枪算是打歪了。从实现的角度讲,AOP确实打破了对象的封装。从构建器,方法调用,甚至类对象初始化,AOP都将对象进行了解剖。可以调用方法内的参数, 返回值,以及捕获异常,这些都比面向对象方式暴露得更彻底。所以目标对象确实是被方面打破了封装。至于方面之间确实像你说的那样,可以进行很好的封装。这是两个问题。
0 请登录后投票
论坛首页 Java企业应用版

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