状态对象:数据库的替代概念

banq 06-01-03
                   


这是一个实战中非常重要但是容易被忽视的概念。说它重要,是因为它比数据库重要;说它容易被忽视也是基于同样的原因,它经常被数据库概念替代。

状态对象:数据库的替代概念

http://www.jdon.com/artichect/state.htm

                   

banq
2006-01-03 17:21

状态和属性难于区分是一大难点,在UML设计中通常会使用Peter Coad等人的四色原型(Archetype)来帮助人们分辨或找出它们之间的区别:




通过划分出一些特征和行为模式,可以帮助我们快速构造出健壮的、可扩展的对象模型,迅速掌握有可能被忽略的属性和操作,增强我们对代码结构的信心。

上图显示了我们可能在各种原型的类中找到的属性和操作,以及各种原型之间的典型关系。

使用粉红色标识的<<moment-interval>>类表示这是可能消逝即纵的一些活动或事件,当然这些活动是以状态数据为标记特征的,例如图中的Momentinterval类中的status状态字段。

关于UML四色图网址描述:

http://software.ccidnet.com/art/322/20021028/28880_1.html

Archetype Patterns 和UML MDA相关资料:
http://www.informit.com/bookstore/product.asp?isbn=032111230X&rl=1


我会近期贴出一些好的最新的英文资料帮助大家学习。

banq
2006-01-03 17:58

刚才上面关于Building Better Software with Archetype Patterns and UML书籍链接没有太多内容介绍,不好,这里重新给个链接:

http://www.aw-bc.com/catalog/academic/product/0,4096,032111230X-PRE,00.html

翻译大意资料:

这是来自实战的一本书,我们希望节省你在软件开发中的大量时间和精力,它给你一系列的archetype patterns 和原理,在以后时间内,我们希望发布一系列有效的archetype patterns。

Archetype patterns原型模式是一个高价值模型组件,你能够容易在UML建模使用它们,每个原型模式提供了可理解的业务建模解决方案。这些模式是高价值而且相似的,但是不太成熟,一些模式被$300,000标价,原文:These patterns are valuable―a similar, but much less mature, set of patterns was recently independently valued at about $300,000 by a blue chip company.

使用这之中任何一个模式,甚至模式的片断,也许会节约你几天甚至几个月的工作时间,甚至更重要的是:这些模式也许阻止你付出昂贵的错误探索代价!

在2003年我们开始考虑,我们在一个软件革命的开始,它象90年代我们看到的面向对象编程从传统过程语言中抽象出来一样。

我们相信我们看到的是以后这十年,更有意义的抽象级别的发展,这将是一个以代码为中心的软件开发方式的根本改变,这就是通过 OMG’s Model Driven Architecture (MDA).

我们希望这些概念和技术或工具以及模式能够帮助我们将这软件革命变成现实。





banq
2006-01-05 12:58

这里一贴跟本主题稍微相关,是所谓野话贴:

http://www.jdon.com/jive/thread.jsp?forum=91&thread=24601

banq
2006-01-06 11:47

我2003年做企业培训时就说过:Java(或者.NET)实战经验过关的标志就是:你是否搞明白Session和Pool的区别。

这个概念是实战中不可避免的,其实这就和状态有关,如果你没有丰富实战经验,或者即使有,也只是数据库为中心的编程,就是使用Ioc/AOP又有什么好处呢?

其实这也和状态有关,Session和Pool的区别取决于你的应用设计是否有状态,这就是谜底,我一直未在网上说,我是想看看各路高手有无此认识。

如果你没有来自实战对状态的领悟,你就会范下面错误,甚至和人辩论,范“无知无畏”的初级错误。:

1.肆无忌惮使用Singleton单例,
2.肆无忌惮地使用httpSession
3.肆无忌惮地否定EJB,特别是有态Session Bean,就象Hibernate 发明者Gavin King肆无忌惮在TSS抨击EJB,被一些人翻译汉化复制到本站论坛,所以才有CMP vs EJB等讨论,Gavin King自己最后醒悟发表著名的关于有态stateful 的文章。
4.肆无忌惮地使用Spring这些无状态管理的框架。你可以说90%无需集群,但是每个系统都是需要状态的。

下面转贴在清华BBS上“肆无忌惮”发表言论的一个帖子:


http://www.smth.edu.cn/bbsanc.php?path=%2Fgroups%2Fdevelop.faq%2FJavaExpress%2Fjavaprogramming%2FJ2EE%2FAOP%2Fgty5
☆─────────────────────────────────────☆ gty (宜良-丽江-蝴蝶泉) 于 (Fri Feb 21 02:33:56 2003) 提到:Session Pool Design1. 利用apache common-pool实现一个Session Pool(非常简单)


批:是一个谈AOP的帖子,如何使用AOP实现POOL,可惜作者使用Session Pool, Session就是Session; Pool就是Pool,是不同两个东西,他要谈的是Pool,但是前面加Session,可见其实战经验薄弱;

行家伸伸手;便知有没有,只有初学者才会被繁话美景迷惑,发出你的功底真厚的感慨,还是尼采那句话:太阳死了,没有人值得你敬佩;只有你自己。

好好学习,2006年我们一起来学习即将替代OO,被老马微词的,即将带来后十年软件革命的MDA吧,先从四色原型模式开始。



3Go 1 2 3 下一页