设计模式-代理模式(静态代理、jdk动态代理以及cglib动态代理)(java代码案例)以及在JDK类库中的应用

本文介绍了代理模式的定义、分类和类图,详细讲解了静态代理、JDK动态代理及CGLIB动态代理的工作原理、优缺点。在静态代理中,代理类需手动实现接口并扩展功能;JDK动态代理则允许在运行时创建代理对象,但要求被代理对象实现接口;CGLIB动态代理则无需接口,但不能用于final或static方法。最后讨论了代理模式在Java RMI中的应用。
摘要由CSDN通过智能技术生成

定义:

代理模式是指给某一个对象提供一个代理对象,并有代理对象来控制对原对象的引用。

分类:

①静态代理;

②动态代理(jdk动态代理,cglib动态代理);

类图:

静态代理

静态代理就是在代理类中写死原对象的方法,并添加一些功能。

DaoInterface:

package com.headfirst.proxymode.interfaces;

public interface DaoInterface {
	public void add();
	public void delete();
	public void update();
	public String query();
}

UserDao:

package com.headfirst.proxymode.dao;

import com.headfirst.proxymode.interfaces.DaoInterface;

public class UserDao implements DaoInterface {

	public void add() {
		System.out.println("add...");
	}

	public void delete() {
		System.out.println("delete...");
	}

	public void update() {
		System.out.println("update...");
	}

	public String query() {
		System.out.println("query...");
		return null;
	}

}

UserDaoProxy:

package com.headfirst.proxymode.dao;

public class UserDaoProxy extends UserDao {
	
    /**
     * 将userdao交给代理类代其完成一系列的动作,并可以自己完成一些事情
	 */
	
	UserDao dao = null;
	
	public UserDaoProxy(){
		if(dao == null){
			dao = new UserDao();
		}
	}
	
	public void add() {
		dao.add();
		System.out.println("add...log");
	}

	public void
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值