Before/After Pattern,很多地方可以见到,不在多说,总结几种实现方式:
1、AOP,这个最简单,也是最偷懒的方法,AspectJ,Spring……很多工具可以选择
2、如果不想使用现成的,可以选择自己在设计时实现,有以下几种方式:
2.1Adapter模式:
设计模式中有很多解释,这里不多说,很明显,如果想在目标方法前面和后面实现一些逻辑,就可以在Adapter里的目标方法实现,示例代码:
写道
public class Adapter implements Target{
private Adaptee adaptee;
public void targetMethod(){
before();
adaptee.targetMethod();
after();
}
}
private Adaptee adaptee;
public void targetMethod(){
before();
adaptee.targetMethod();
after();
}
}
这种方法很多用于对原有代码进行改造的时候
2.2 Subclassing
还有一种方式就是使用子类,类似的也很简单。
写道
public interface Logic{
void method();
}
public abstract class AbstractLogic implements Logic{
public void abstract beforeMethod();
public void abstract afterMethod();
public void abstract doMethod();
public void method(){
beforeMethod();
doMethod();
afterMethod();
}
}
void method();
}
public abstract class AbstractLogic implements Logic{
public void abstract beforeMethod();
public void abstract afterMethod();
public void abstract doMethod();
public void method(){
beforeMethod();
doMethod();
afterMethod();
}
}
这个就是代码有点麻烦,先写这么多吧,改天再补充