Posted on 2005-11-14 15:37
canonical 阅读(277)
评论(0) 编辑 收藏 所属分类:
设计理论
函数封装可以看作是对语句流中的一个区间(range)的抽象(基本等价于一个点抽象),而AOP (Aspect Oriented Programming)则定义了一维线性结构(程序文本)中的区间的边(boundary)。在未有aop之前为了定义这种boundary, 我们往往不得不借助于继承技术,通过在基类(base class)中预先定义所需的结构来打破函数的原子性。例如
class BaseClass{
public void doSomething(){
before();
reallyDo():
after();
}
protected void before(){}
protected void after(){}
}
class ExtClass extends BaseClass{
protected void before(){
....
}
}
根据拓扑学(topology),二维情况下最重要的拓扑结构是所谓的环(loop)。例如,在界面上我们经常将各种不同的内容放置在某一类固定的边框中,一种好的界面技术应该能够将这种边框独立的抽象出来。在witrix平台的tpl模板语言中,我们通过bodyTag可以轻易的实现这一抽象。
<app:普通消息边框>
<input type="text" value="name" />
...
</app:普通消息边框>
这种抽象其实已经超出了AOP的范畴。