代理模式——java

102 阅读1分钟

对代理模式的理解

拍电影的时候替身就是代理模式的体现,替身演员是演员的代理对象

替身演员在这次应用中有什么作用呢?

  1. 演员怕自己受伤所以找了个替身演员。(保护自己)
  2. 替身演员可以完成演员无法完成的高难度动作。(功能增强)

所以在java程序中使用代理模式的作用: 1. 当一个对象需要被受到保护的时候,需要用到代理模式 2. 当需要给一个对象进行功能增强的时候可以用到代理模式 3. 当A对象与B对象无法进行直接交互的时候可以用到代理模式

代理模式有三大角色: 目标对象 代理对象 目标对象与代理对象的一个公共接口。(演员和替身应该具有相同的行为动作)

为什么需要一个公共接口呢? 很好理解,在观众观看电影的时候,不能让观众知道这个是替身演员,也就是要让客户端在使用代理对象的时候就像在使用目标对象一样。对外暴露的是一个接口。

下面贴出代理模式的java代码

public interface 表演接口 {
    void 打架();

}

 public class 目标对象 implements 表演接口{
        实现打架接口

 }

 public class 代理对象 implements 表演接口{
     实现打架接口并进行增强

 }

 //对外使用的时候就这个接口
 

应用:spring aop面向切面 , mybatis的mapper接口都使用了代理模式。