代理模式,为其他对象提供一个代理以控制对这个对象的访问。
代理模式代码实现如下:
抽象角色:
package com.wanq.designmode.proxy;
/**
* @author-WanQ
* @创建时间:2013-3-25 下午01:59:05
* @类说明:
* 抽象主题
*/
public interface Subject {
//定义一个方法
public void request();
}
真是角色
package com.wanq.designmode.proxy;
/**
* @author-WanQ
* @创建时间:2013-3-25 下午02:00:02
* @类说明:
* 真实主题
*/
public class RealSubject implements Subject {
//实现方法
@Override
public void request() {
// TODO Auto-generated method stub
// 业务逻辑处理
}
}
代理类
package com.wanq.designmode.proxy;
/**
* @author-WanQ
* @创建时间:2013-3-25 下午02:01:10
* @类说明:
* 代理对象
*/
public class Proxy implements Subject {
// 要代理那个实现类
private Subject subject = null;
// 默认被代理者
public Proxy(){
this.subject = new Proxy();
}
// 通过构造函数传入代理者
public Proxy(Subject subject){
this.subject = subject;
}
@Override
public void request() {
// TODO Auto-generated method stub
this.before();
this.subject.request();
this.after();
}
//预处理
private void before(){
}
//善后处理
private void after(){
}
}