Java静态代理与动态代理实例对比分析有何不同?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2023个文字,预计阅读时间需要9分钟。
代理模式:为其他对象提供一种代理以控制对这个对象的访问。用于:在某些情况下,一个客户不想或者不能直接访问另一个对象,代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。
例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租房子,租客(客户)通过中介(代理对象)来找房子租房子,中介完成了租房以后可以收取中介费(附加操作)。
先看看静态代理模式,通过上面对代理模式的理解,可以了解到代理模式:即不直接通过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分钟。
代理模式:为其他对象提供一种代理以控制对这个对象的访问。用于:在某些情况下,一个客户不想或者不能直接访问另一个对象,代理对象可以在客户端和目标对象之间起到中介的作用。
代理模式:为其他对象提供一种代理以控制某个对象的访问。用在:在某些情况下,一个客户不想或者不能直接访问另一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用,代理对象还可以完成它附加的操作。
例子:就像房东、租客、中介的关系。中介(代理对象)为房东(真实对象)出租房子,租客(客户)通过中介(代理对象)来找房子租房子,中介完成了租房以后可以收取中介费(附加操作)。
先看看静态代理模式,通过上面对代理模式的理解,可以了解到代理模式:即不直接通过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里面的方法,但是在这里里面是通过调用真实对象来实现的。

