作文考级,以及再论语文课的吊诡- -| 回首页 | 2005年索引 | - -技术 vs. 业务,huh?

AOSD with Use Cases之心得第一- -

                                      

以前一直在讲,AOP是用来处理crosscutting concern的。举的例子多是什么安全检查、事务管理之类的infrastructure concerns,无怪乎一直以为AOP只是实现infrastructure的一种技法而已。读Ivar Jacobson的AOSD with Use Cases,豁然开朗——既然“crosscutting”是指“横跨多个class”,这最常见的crosscutting concern不就是用例么:

在这例子中,“订房间”和“入住”是两个相当独立的用例,然则两者都用到这么几个class。按照传统的OO做法,用例的概念便被散落在各个类之中。而Jacobson用AspectJ的实现,把每个用例建模为一个aspect,各个aspect分别向class中introduce自己需要的方法。用这种方式实现出来的程序,能够一眼看清用例的概念,与“用例驱动开发”是一脉相承的。

一个问题是:如果所有的method和field都是aspect来introduce的(或者说,模型是从动词——即用例——的角度来建立的),那么class的概念又该是什么呢?莫非仅仅是一个空空的占位符,象征性地意味着名词模型?我想,这两个极端(即:“动词建模”与“名词建模”)之间应该存在某种tradeoff的guideline,希望在AOSD with Use Cases的后面部分能够看到。

- 作者: 透明 2005年04月23日, 星期六 22:59

Trackback

你可以使用这个链接引用该篇日志 http://publishblog.blogdriver.com/blog/tb.b?diaryID=646694

回复

- 评论人:canonical

Sun Apr 24 13:03:42 CST 2005  作者邮箱  作者Blog

jacobson写的很清楚:The use case structure defines how you overlay functionality onto the element structure。
http://canonical.blogdriver.com/canonical/639784.html

- 评论人:ozzzzzz

Sun Apr 24 03:39:49 CST 2005  作者Blog

上次在和Jacobson不是已经谈过这个问题了吗?你这个小子想什么去了?

评论内容: