Java:代理模式:修订间差异
imported>Soleverlee 以“Java代理模式是很有用的模式,之前阿里的面试官问我AOP是怎么实现的,说了半天没说清楚,后来才发现原来叫代理模式...代...”为内容创建页面 |
imported>Soleverlee 无编辑摘要 |
||
第1行: | 第1行: | ||
=静态代理= | |||
Java代理模式是很有用的模式,之前阿里的面试官问我AOP是怎么实现的,说了半天没说清楚,后来才发现原来叫代理模式...代理模式的核心思想是,在方法外面再包装一层,这样执行的时候,当然可以在实际执行的方法前面和后面加别的函数了... | Java代理模式是很有用的模式,之前阿里的面试官问我AOP是怎么实现的,说了半天没说清楚,后来才发现原来叫代理模式...代理模式的核心思想是,在方法外面再包装一层,这样执行的时候,当然可以在实际执行的方法前面和后面加别的函数了... | ||
第21行: | 第22行: | ||
</source> | </source> | ||
这样实际在使用的过程中,用这个代理而不是直接的实现,就可以在handle处理前后做一些文章了。 | 这样实际在使用的过程中,用这个代理而不是直接的实现,就可以在handle处理前后做一些文章了。 | ||
=动态代理= | |||
=Cglib动态代理= | |||
[[Category:Programe]] | [[Category:Programe]] |
2016年4月28日 (四) 06:54的版本
静态代理
Java代理模式是很有用的模式,之前阿里的面试官问我AOP是怎么实现的,说了半天没说清楚,后来才发现原来叫代理模式...代理模式的核心思想是,在方法外面再包装一层,这样执行的时候,当然可以在实际执行的方法前面和后面加别的函数了...
首先要定义一个接口:
interface Handler{
public void handle();
}
然后这个接口有个实现,就略了;关键是还要加一个代理实现:
class Proxy implements Handler{
HandlerImpl impl = new HandlerImpl();
@Override
public void handle(){
//before
this.impl.handle();
//after
}
}
这样实际在使用的过程中,用这个代理而不是直接的实现,就可以在handle处理前后做一些文章了。