观察者(Observer)模式
用途:定义对象之间的一对多依赖关系,因此,当一个对象的状态发生改变时,其所有依赖项都会得到通知,并自动更新。
它是 OO 设计模式的皇后。该模式被人们广泛应用(特别是在 GUI 应用程序中),并构成了 MVC 架构的关键部分。它处理复杂的问题,而在解决这类问题方面表现得相对较好。但是,从实现需要的努力和代码理解的角度来说,它还是带来了一些难以解决的难题。
不足:观察者(Observer)模式要求您先侵入系统中现有的类,然后才能支持该模式 &m ...
收集了几个常用的方面:
NoCallsIntoTestFromOutside 禁止从产品包到测试包的引用
public abstract aspect NoCallsIntoTestFromOutside {
//引用带有test的包的所有可能操作
pointcut referToTestPackage():
call(* *..test..*.*(..)) || call(*..test ...
默认的情况下,Aspect类只有一个实例存在于虚拟机中,也就是作为单例存在的,对于每个对象来说,方面是共享的。一般这样的方面,不能用来保存相应对象的状态。
对于AspectJ 来说,Aspect方面类,包括以下的实例化方式。
* 每虚拟机(默认),只有一个实例,其生命周期从虚拟机启动开始,一直到虚拟机停止。
* 每对象,对于每一个对象都有一个方面实例,其生命周期跟随相关联的对象。
* 每控制流,对于每个controlFlow点,都会创建相应的方面实例,可以参考事务管理(对于事务,每个原子操作,都是一个控制流,方面的生命周期,从控制流开始,一直到控制流结束)。
...
这两天忙着看AspectJ in Action 为了补一下AOP知识。看了Spring 2.0的规范,其中AOP部分已经基本融合了AspectJ,看来有必要看一看AspectJ了。
看了很多AOP的文章了,AOP这两年发展的很慢,没有什么新意,现在到处都是SOA,SCA了,不过研究了一下,觉得还是很有帮助的。尤其是增加系统的契约性和模块的独立性来说,很有帮助。
当然,学东西,基础很重要。下面就说说AspectJ中的基本语法,有兴趣的可以看看AspectJ in Action。
先来说说pointcut,从字面的意思说的是切面的意思。也就是横切的时候,会有哪些执行点会被识别。只 ...
日志,是每个系统都不可缺少的。但是,又不是必要的业务需求。 但用于日志记录的代码和主要用于其它职责的代码缠绕在一起。根据所解决的问题的复杂程度和作用域的不同,所引起的混乱可大可小。更改一个应用程序的日志记录策略可能涉及数百次编辑 ― 即使可行,这是个令人头疼的任务。 考虑一下以下代码:清单 1. 日志调用手工插入到每个方法中 &nbs ...
- 浏览: 114762 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
spring aop 2.0 编程(二 ...
依照你的例子,但是我test的时候出现以下结果我把class都放在package ...
-- by Ben.Sin -
ext 之我见
祝愿ext越走越远,把效率问题解决一下。
-- by InnocentBoy -
关于服务端生成js的构思
楼主的想法跟我不谋而合,想问一下remove相应的删除js脚本 ,是指删除以前返 ...
-- by gif98 -
关于服务端生成js的构思
stevenwang 写道你好像把方向搞反了。 为了减轻服务器的负载才选择了ri ...
-- by zyl -
关于服务端生成js的构思
你好像把方向搞反了。为了减轻服务器的负载才选择了rich client技术,你却 ...
-- by stevenwang






评论排行榜