代理模式也稱委託模式,日常事務很多代理模式,例如幫別人跑腿買東西,代理售票等等。在設計模式為其他物件服務某件功能。
代理模式定義
為物件提供代理服務
代理模式作用
- 想要託管物件行為
- 可以在該物件之前或之後,進行額外的動作
代理模式範例
本範例當我有一個網站服務WebService實作IService介面,網站服務利用WebProxy託管,當他託管時,可以在執行服務前後加上其他動作
/**
* Name: IService.java
* Description : 託管介面
* Created by bryant on 2017/1/20.
*/
public interface IService {
//執行動作
public void doAction();
}
/**
* Name: WebService.java
* Description : 網站託管
* Created by bryant on 2017/1/20.
*/
public class WebService implements IService {
@Override
public void doAction() {
System.out.println("進行託管");
}
}
/**
* Name: WebProxy.java
* Description : 代理模式
* Created by bryant on 2017/1/20.
*/
public class WebProxy {
private IService service ;
public WebProxy(IService service){
this.service = service ;
}
public void action(){
//執行服務前條件
System.out.println("託管前設定");
this.service.doAction();
//其他條件
System.out.println("本次託管費用");
}
}
/**
* Name: IService.java
* Description : 代理模式測試
* Created by bryant on 2017/1/20.
*/
public class WebProxyDemo {
public static void main(String[] args){
IService webService = new WebService();
WebProxy proxy = new WebProxy(webService);
proxy.action();
}
}
結果: 託管前設定
進行託管
本次託管費用
留言
張貼留言