java代理模式
闲着无聊,看了看网上的设计模式,自己动手写了个简单的代理模式
基本思路:既然是代理,肯定是通过代理人去作某件事,代理对象能和委托代理的对象能交互哦,那么我们就来设计的类
//代理的接口类
public interface ProxyInter {
public String getProxyName() throws Exception;
}
基本思路:既然是代理,肯定是通过代理人去作某件事,代理对象能和委托代理的对象能交互哦,那么我们就来设计的类
//代理的接口类
public interface ProxyInter {
public String getProxyName() throws Exception;
}
真实需要代理的对象
public class RealObject implements ProxyInter {
/**
* @Function: RealObject.java
* @Description: 该函数的功能描述
*
* @return
* @throws Exception
* @return:返回结果描述
* @throws:异常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-23 下午10:29:23
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-23 浪子 v1.0.0 修改原因
*/
public String getProxyName() throws Exception {
System.out.println("objectReal");
return "object";
}
}
public class RealObject implements ProxyInter {
/**
* @Function: RealObject.java
* @Description: 该函数的功能描述
*
* @return
* @throws Exception
* @return:返回结果描述
* @throws:异常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-23 下午10:29:23
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-23 浪子 v1.0.0 修改原因
*/
public String getProxyName() throws Exception {
System.out.println("objectReal");
return "object";
}
}
//与其他的对象的交互通过代理类访问,因此代理也实现了共同的接口,也不可以不实现,按道理,真实的实现类,作为代理类的属性,通过访问代理类,代理类访问属性,从而访问真实类,实现代理的目的
public class ProxyInterImpl implements ProxyInter {
private RealObject realSubject;
public ProxyInterImpl()
{
realSubject= new RealObject();
}
/**
* @Function: ProxyInterImpl.java
* @Description: 该函数的功能描述
*
* @return
* @throws Exception
* @return:返回结果描述
* @throws:异常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-23 下午10:18:42
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-23 浪子 v1.0.0 修改原因
*/
public String getProxyName() throws Exception {
System.out.println("ProxyName=");
realSubject.getProxyName();
return "Proxy";
}
//代理类访问
public static void main(String []args) throws Exception
{
ProxyInter proxy=new ProxyInterImpl();
proxy.getProxyName();
}
}
public class ProxyInterImpl implements ProxyInter {
private RealObject realSubject;
public ProxyInterImpl()
{
realSubject= new RealObject();
}
/**
* @Function: ProxyInterImpl.java
* @Description: 该函数的功能描述
*
* @return
* @throws Exception
* @return:返回结果描述
* @throws:异常描述
*
* @version: v1.0.0
* @author: 浪子
* @date: 2011-8-23 下午10:18:42
*
* Modification History:
* Date Author Version Description
*---------------------------------------------------------*
* 2011-8-23 浪子 v1.0.0 修改原因
*/
public String getProxyName() throws Exception {
System.out.println("ProxyName=");
realSubject.getProxyName();
return "Proxy";
}
//代理类访问
public static void main(String []args) throws Exception
{
ProxyInter proxy=new ProxyInterImpl();
proxy.getProxyName();
}
}
总结:网上说代理模式好处是在需要用时,才会生成真实对象,至少看我上面的代码,是没体现出来哦!