码迷,mamicode.com
首页 > 其他好文 > 详细

代理模式

时间:2019-02-27 20:26:51      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:ring   opened   png   http   override   接口   ide   技术   mamicode   

1.基本概念

  • 给对象提供一个代理对象,通过代理对象调用实际对象
  • 作用:通过代理对象间接访问实际对象
  • 解决的问题:防止直接访问对象给系统带来不必要的复杂性(直接将实际对象接口完全暴露给客户端程序员)
  • UML

  技术图片

2.代码

技术图片
package com.chengjie;

interface BuySubject {
    void buy();
}

class RealBuySubject implements BuySubject {
    @Override
    public void buy() {
        System.out.println("买一台MAC!");
    }
}

class RealBuySubjectProxy implements BuySubject {
    private BuySubject bs;

    public RealBuySubjectProxy(BuySubject bs) {
        this.bs = bs;
    }

    @Override
    public void buy() {
        bs.buy();
    }
}

public class TestProxyPattern {
    public static void main(String[] args) {
        new RealBuySubjectProxy(new RealBuySubject()).buy();
    }
}
View Code

3.优点

  • 添加了代理层,降低了系统耦合度
  • 代理层可以对目标对象进行屏蔽,使得对客户端程序员不可见,增加安全性

4.缺点

  • 增加了额外的处理流程,造成请求速度变慢
  • 额外实现了代理类,增加了复杂度

5.应用场景

  技术图片

6.参考

  https://www.jianshu.com/p/a8aa6851e09e

代理模式

标签:ring   opened   png   http   override   接口   ide   技术   mamicode   

原文地址:https://www.cnblogs.com/forTheDream1991/p/10445216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!