代理模式
Posted forthedream1991
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代理模式相关的知识,希望对你有一定的参考价值。
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(); } }
3.优点
- 添加了代理层,降低了系统耦合度
- 代理层可以对目标对象进行屏蔽,使得对客户端程序员不可见,增加安全性
4.缺点
- 增加了额外的处理流程,造成请求速度变慢
- 额外实现了代理类,增加了复杂度
5.应用场景
6.参考
https://www.jianshu.com/p/a8aa6851e09e
以上是关于代理模式的主要内容,如果未能解决你的问题,请参考以下文章