Java静态代理与动态代理实例对比分析有何不同?

2026-05-26 05:240阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2023个文字,预计阅读时间需要9分钟。

Java静态代理与动态代理实例对比分析有何不同?

代理模式:为其他对象提供一种代理以控制对这个对象的访问。用于:在某些情况下,一个客户不想或者不能直接访问另一个对象,代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。

例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租房子,租客(客户)通过中介(代理对象)来找房子租房子,中介完成了租房以后可以收取中介费(附加操作)。

先看看静态代理模式,通过上面对代理模式的理解,可以了解到代理模式:即不直接通过new一个真实对象来调用方法,而是通过代理对象来调用一个方法,所以代理对象包含真实对象的引用。下面看一下代码

接口:Subject包含一个方法

package com.example.designpattern.proxy; public interface Subject { void request(); }

RealSubject类,实现了Subject接口,为了简单起见,方法简单的输出一句话:

package com.example.designpattern.proxy; public class RealSubject implements Subject { //真是角色实现了 public void request() { System.out.println("From real subject"); } }

代理类ProxySubject,也要实现Subject接口,实现Subject里面的方法,但是在这里里面是通过调用真实对象来实现的。

阅读全文

本文共计2023个文字,预计阅读时间需要9分钟。

Java静态代理与动态代理实例对比分析有何不同?

代理模式:为其他对象提供一种代理以控制对这个对象的访问。用于:在某些情况下,一个客户不想或者不能直接访问另一个对象,代理对象可以在客户端和目标对象之间起到中介的作用。

代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。

例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租房子,租客(客户)通过中介(代理对象)来找房子租房子,中介完成了租房以后可以收取中介费(附加操作)。

先看看静态代理模式,通过上面对代理模式的理解,可以了解到代理模式:即不直接通过new一个真实对象来调用方法,而是通过代理对象来调用一个方法,所以代理对象包含真实对象的引用。下面看一下代码

接口:Subject包含一个方法

package com.example.designpattern.proxy; public interface Subject { void request(); }

RealSubject类,实现了Subject接口,为了简单起见,方法简单的输出一句话:

package com.example.designpattern.proxy; public class RealSubject implements Subject { //真是角色实现了 public void request() { System.out.println("From real subject"); } }

代理类ProxySubject,也要实现Subject接口,实现Subject里面的方法,但是在这里里面是通过调用真实对象来实现的。

阅读全文