当前位置:   article > 正文

GOF之代理模式

gof之代理模式

简介

        给某对象提供一个代理以控制对该对象的访问。重在反问控制权限。代理模式属于结构型模式。

角色划分

        Subject:抽象主题【抽象主题类可以是抽象类也可以是接口】。

        RealSubject:真实主题【业务逻辑的具体执行者】。

        Proxy:代理 负责对真实角色的应用,把所有抽象主题定义的方法限制委托给真实主题去实现,并且在真实主题角色处理完毕的前后做预处理和善后处理工作。

代码实现

  1. //抽象主题 可为抽象类或者接口
  2. public interface Subject {
  3. void way();
  4. }
  1. //具体角色
  2. public class RealSbject implements Subject {
  3. @Override
  4. public void way() {
  5. System.out.println("访问具体角色方法");
  6. }
  7. }
  1. //代理类
  2. public class Proxy implements Subject {
  3. //注入真实角色
  4. @Autowired
  5. private RealSubject realSubject;
  6. @Override
  7. public void way() {
  8. preWay();
  9. realSubject.way();
  10. postWay();
  11. }
  12. public void preWay() {
  13. System.out.println("访问真实角色之前的预处理");
  14. }
  15. public void postWay() {
  16. System.out.println("访问真实角色之后的后续处理");
  17. }
  18. }
  1. //具体使用
  2. public class App{
  3. public static void main(String[] args) {
  4. Proxy proxy = new Proxy();
  5. proxy.way();
  6. }
  7. }

优缺点

        效率高,只要获取代理对象并执行就结束了。

        如果接口增加新方法,被代理类得改,代理也得改;每一个被代理类都得有一个代理类。如果系统很大,那么关于代理类的维护的代价是很大的。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号