代理模式(Proxy Pattern),按俺的理解,代理模式中分为代理代表和代理执行者。代理代表负责接收外界的调用,在其内部调用代理执行者和其它扩展方法进行处理、代表执行者是负责实际的代理操作。
代理基础接口
package com.cupid.Pattern; /** * @Author: cupid * Created by Cupid520 on 2018/2/20. * @Description: 代理模式范例 */ public interface ProxyPattern { public void toProxy(String src); }
代理执行者
package com.cupid.Pattern; /** * @Author: cupid * Created by Cupid520 on 2018/2/20. * @Description: 代理模式执行者 */ public class PatternExecute implements ProxyPattern{ @Override public void toProxy(String src) { System.out.println("这是代理模式执行者中的方法触发了 :" + src); } }
代理代表
package com.cupid.Pattern; /** * @Author: cupid * Created by Cupid520 on 2018/2/20. * @Description: 代理代表,即代理模式表层中所暴露出来的类 */ public class ProxyRepresent implements ProxyPattern{ private PatternExecute execute; public ProxyRepresent(){ super(); execute = new PatternExecute(); } @Override public void toProxy(String src) { before(); execute.toProxy(src); after(); } private void before(){ System.err.println("before"); } private void after(){ System.out.println("after"); } }
测试主类
package com.cupid.Pattern; /** * @Author: cupid * Created by Cupid520 on 2018/2/20. * @Description: */ public class MainTest { public static void main(String[] args) { ProxyPattern represent = new ProxyRepresent(); represent.toProxy("this is proxy pattern"); } }