代理模式也稱委託模式,日常事務很多代理模式,例如幫別人跑腿買東西,代理售票等等。在設計模式為其他物件服務某件功能。
代理模式定義
為物件提供代理服務
代理模式作用
- 想要託管物件行為
- 可以在該物件之前或之後,進行額外的動作
代理模式範例
本範例當我有一個網站服務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(); } }
結果: 託管前設定
進行託管
本次託管費用
留言
張貼留言