设计模式之代理设计模式简单实践

本文通过具体实例介绍了代理设计模式的应用,包括定义顶级接口类、核心类和代理类,并演示了如何在实际场景中使用代理模式来扩展核心功能。


1.顶级接口类--定义共性规则

package com.git.base.designpatterns.proxy;
/**
 * 
 * <p>Title: ReadBook.java</p>
 * <p>Description:代理设计模式之 代理抽象类 </p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:49:06
 * @version 1.0
 */
public interface ReadBook {

	public void read();
}

2.核心类--定义核心的功能代码

package com.git.base.designpatterns.proxy;

public class ReadBookInstance  implements ReadBook{

	@Override
	public void read() {
		System.out.println("读书ing");
	}

}

3.代理类 ---实现核心代码外的额外操作


package com.git.base.designpatterns.proxy;
/**
 * 
 * <p>Title: ProxyReadBook.java</p>
 * <p>Description:读书的代理类 用于完成读书的主方法外的额外方法</p>
 * <p>Copyright: Copyright (c) 2016</p>
 * <p>Company: Sage</p>
 * @author 五虎将
 * @date 2016年5月3日下午10:46:05
 * @version 1.0
 */
public class ProxyReadBook implements ReadBook{

	private ReadBookInstance read;
	
	/**
	 * 重点在这里--这里在引申一下就是一个典型的AOP了
	 * <p>Title: read</p>
	 * <p>Description: </p>
	 * @see com.git.base.designpatterns.proxy.ReadBook#read()
	 */
	@Override
	public void read() {
		System.out.println("获取到书籍 准备进行读取!");
		read.read();//读书主方法
		System.out.println("读书结束 书籍归位处理!");
	}

	public ReadBookInstance getRead() {
		return read;
	}

	public void setRead(ReadBookInstance read) {
		this.read = read;
	}

}


4.代理模式测试类


package com.git.base.designpatterns.proxy;

public class ProxyTest {

	public static void main(String[] args) {
		
		ReadBookInstance read = new ReadBookInstance();
		ProxyReadBook proxy = new ProxyReadBook();
		proxy.setRead(read);
		proxy.read();
		
	}
}













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值