1.代理设计模式
GoF95 一共定义了23种设计模式.代理设计模式是非常重要模式之一. 作用:
对目标对象访问进行控制.在访问目标前,后进行功能的扩展. 可以进行功能扩展的技术:
过滤器 拦截器 代理 … 代理方式:
静态代理:只能代理一种类型的对象.代理类需要自定义开发. 动态代理:可以代理所有的类型对象.代理类由代理工具类动态生成.
JDK动态代理
基于接口进行代理. 目标对象必须实现相关的接口,才能使用这种代理方式. 代理类和目标类实现了共同的接口. InvocationHandler Cglib/Javassist
基于继承方式进行代理的. 代理类是目标类的子类. 代理流程:
使用代理前代码结构:
A(客户端) -> D(目标程序(业务代码+非业务代码(日志,事务,权限,校验…))) 使用代理后代码结构:
A(客户端) ->B(代理对象) ->C(调用处理器(非业务代码(日志,事务,权限,校验…))-> D(目标程序(业务代码)) 代理可以解决系统中哪些问题?
日志打印,事务处理,权限控制,数据校验…
转载请注明原文地址: https://www.6miu.com/read-750168.html