对代理模式的理解
拍电影的时候替身就是代理模式的体现,替身演员是演员的代理对象
替身演员在这次应用中有什么作用呢?
- 演员怕自己受伤所以找了个替身演员。(保护自己)
- 替身演员可以完成演员无法完成的高难度动作。(功能增强)
所以在java程序中使用代理模式的作用: 1. 当一个对象需要被受到保护的时候,需要用到代理模式 2. 当需要给一个对象进行功能增强的时候可以用到代理模式 3. 当A对象与B对象无法进行直接交互的时候可以用到代理模式
代理模式有三大角色: 目标对象 代理对象 目标对象与代理对象的一个公共接口。(演员和替身应该具有相同的行为动作)
为什么需要一个公共接口呢? 很好理解,在观众观看电影的时候,不能让观众知道这个是替身演员,也就是要让客户端在使用代理对象的时候就像在使用目标对象一样。对外暴露的是一个接口。
下面贴出代理模式的java代码
public interface 表演接口 {
void 打架();
}
public class 目标对象 implements 表演接口{
实现打架接口
}
public class 代理对象 implements 表演接口{
实现打架接口并进行增强
}
//对外使用的时候就这个接口
应用:spring aop面向切面 , mybatis的mapper接口都使用了代理模式。