黑马程序员技术交流社区

标题: 接口问题 [打印本页]

作者: 伍仪华    时间: 2011-7-31 11:59
标题: 接口问题
因为接口已经是写好的,用观察模式好像有点把接口给污染耦合了,有人给个招不。
另外有一问题:用aop拦截器出现这个问题
接口文件中有两个方法 A(); B();
如果在return之前拦截B(),能够成功,但如果是在A()的实现类中调用B(),则拦截不到了,就是不能在嵌套拦截。
A(){
B(); //这样调用拦截不到B();
}
有没有人想个办法,我想知道B()是否调用了,因为我要做个一旦被调用了就去执行某个操作。
作者: 匿名    时间: 2011-8-1 01:17
可以。观察模式其实就如监听模式一样,它们本质上都是在利用事件驱动机制。
如果你在某一方法被调用时执行一些操作或传递一些信息,可以这样:
public void fun(){
       //该方法的代码块
   //你要加入的操作或实现信息传递
   //该方法的代码块
   return;
}
无论该方法在何处被调用,你加入的操作都会被执行。你的操作可以加在方法体的任意位置。
这就是事情的本来面目,然而一般情况下,为了更灵活的考虑,我们并不这样做。而是通过定义通用的接口来封装我们插入的操作,如此做,只要简单的实现接口,便可随时定义我们要插入到方法中操作。
准确的说,我们无法拦截一个方法的执行,除非其因不可抗力而终止执行,我们所能做的就是,了解方法正在执行,并且在其执行的逻辑之外添加一些额外的操作而且,这与方法的本来代码是无关的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2