java动态代理详解

java代理可分为动态代理静态代理

代理模式的作用:为其他的对象提供一种代理以访问真实的对象,作用类似于“中介


静态代理:包含三个角色

  1.抽象角色:真实的对象与代理对象共同实现的接口或抽象类

  2.代理角色:内部包含了对真实对象的引用,其实现的方法内部实际上调用的是真实的角色的对象,是对真实角色的一种封装。

   3.真实角色:最终操作的那个对象。

 抽象角色

                                     

package com.qidian.proxy;

//抽象的角色,也可定义成抽象类
public interface AbsInteface
{
	public void rent();//租房子

}
真实角色

package com.qidian.proxy;

//真实的角色实现了共同的抽象接口
public class RealRole implements AbsInteface
{

	@Override
	public void rent()
	{
		System.out.println("房东租房子!!!");
		
	}

}

代理角色

package com.qidian.proxy;

//代理类也实现了共同的契约
public class ProxyRole implements AbsInteface
{
	RealRole real;//真实类的引用

	@Override
	public void rent()
	{
                 //实际上操作的还是真实类
		//真实类是一个“枪手”
		RealRole realRole = (real == null ? new RealRole() : real);
		realRole.rent();
	}

}
测试的环境

package com.qidian.proxy;

public class ProxyTest
{
	public static void main(String[] args)
	{
		AbsInteface abs = new ProxyRole();
		abs.rent();// 房东租房子!!!
	}

}

       动态代理

                  java动态代理类位于java.lang.reflect包下面主要涉及两个类:Interface InvocaionHandler 接口和Proxy类

                 未完待续……

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值