前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代理模式(设计模式)

代理模式(设计模式)

原创
作者头像
WindSun
修改2019-09-11 09:50:04
3460
修改2019-09-11 09:50:04
举报
文章被收录于专栏:编程技术专栏编程技术专栏

概述

代理模式,为其他对象提供了一种代理以控制对这个对象的访问。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。

代理模式

UML图

图 1
图 1

代码

代理类和真实类的公用接口

代码语言:txt
复制
public interface Subject {
    void request();
}

真实类的请求

代码语言:txt
复制
public class RealSubject implements Subject{
    @Override
    public void request() {
        System.out.println("真实请求");
    }
}

代理请求,引入了真实类对象,对方法进行了增强

代码语言:txt
复制
public class Proxy implements Subject{

    private RealSubject realSubject;

    @Override
    public void request() {
        if (realSubject == null) {
            realSubject = new RealSubject();
        }
        realSubject.request();
        System.out.println("代理请求");
    }
}

主函数测试

代码语言:txt
复制
public class JavaDemo {

    public static void main(String[] args){
        Subject proxy = new Proxy();
        proxy.request();
    }
}

应用场景

比如当我们使用别人的代码的时候,可以通过代理,对方法增强,避免了修改别人的代码。Spring AOP。

优缺点

职责清晰了,高扩展性,智能化。但由于多了一个代理对象,可能会使请求的处理速度变慢,有些代理的实现较为复杂。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • 代理模式
  • 代码
  • 应用场景
  • 优缺点
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档