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();
}
}
總結:網上說代理模式好處是在需要用時,才會生成真實對象,至少看我上面的代碼,是沒體現出來哦!
本文由用戶 chyx413332087 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!