设计模式笔记-代理模式
2014-09-26 07:37
134 查看
代理模式顾名思义是是一个类代理另外一个类来实现某些功能,也可以在功能的前后插入一些逻辑。
静态代理:
动态代理:
public interface Subject { public void doSomething(); } public class SubjectImp implements Subject{ public void doSomething() { System. out .println("Subject doSomething" ); } }
静态代理:
public class Proxy { SubjectImp subject ; public Proxy(SubjectImp subject) { this .subject = subject; } public void preDothing() { System. out .println("Proxy preDothing" ); } public void dothing() { preDothing(); subject.doSomething(); afterDothing(); } public void afterDothing() { System. out .println("Proxy afterDothing" ); } } public class ProxyClient { public static void main(String[] args) { SubjectImp subject = new SubjectImp(); Proxy proxy = new Proxy(subject); proxy.dothing(); } }
动态代理:
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; public class DynamicProxy implements InvocationHandler { private Object subject ; public DynamicProxy(Object subject) { this .subject = subject; } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { beforeSubject(); Object result = method.invoke( subject, args); afterSubject(); return result; } public void beforeSubject() { System. out .println(" before subject" ); } public void afterSubject() { System. out .println(" after subject" ); } } import java.lang.reflect.Proxy; public class DynamicProxyClient { public static void main(String[] args) { SubjectImp subject = new SubjectImp(); DynamicProxy handler = new DynamicProxy(subject); Subject obj = (Subject) Proxy.newProxyInstance(handler .getClass().getClassLoader(), subject.getClass().getInterfaces(), handler); obj.doSomething(); } }
相关文章推荐
- 设计模式笔记(五) —— 代理模式
- 设计模式学习笔记(十三)——Proxy代理模式
- 设计模式学习笔记-代理模式
- 深入浅出设计模式笔记之十:代理模式
- 设计模式学习笔记之代理模式
- 设计模式学习笔记之代理模式
- 设计模式学习笔记——代理模式
- 设计模式之06代理模式(笔记)
- 设计模式笔记之---代理模式
- 设计模式学习笔记十六:代理模式(Proxy Pattern)
- 设计模式笔记(13)---代理模式(结构型)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式)
- 设计模式笔记(13)---代理模式(结构型)
- 设计模式学习笔记(五)之代理模式(Proxy)
- 设计模式笔记(13)---代理模式(结构型)
- 步步为营 .NET 设计模式学习笔记 七、Proxy(代理模式
- java 设计模式 学习笔记(6) 代理模式
- 设计模式学习笔记-代理模式
- 设计模式笔记15:代理模式(Proxy Pattern)
- 设计模式学习笔记--Proxy代理模式