
设计模式
文章平均质量分 62
qchery
崇尚专注,乐于分享!
个人站点:https://qchery.gitee.io
微信公众号:Q码记
欢迎大家关注交流!!!
展开
-
JDK 动态代理源码解读
在Jdk 动态代理使用的过程中,程序入口为 Proxy.newProxyInstance, 通过对程序调用的跟踪,可以得到如下时序图。在 newProxyInstance 方法里面,主要做了两件事情:一、生成指定的代理类;二、使用 InvocationHandler 创建一个代理类实例;public static Object newProxyInstance(ClassL...原创 2018-04-09 23:08:54 · 555 阅读 · 0 评论 -
使用JDK中的InvocationHandler、Proxy实现动态代理
e="java"]public class UserDAOImpl { public void save(User user) { System.out.println("user saved!"); }}[/code][b]1、实现方法一:直接在方法里面逻辑前后进行添加[/b][code="java"]public class UserDAOImpl implements UserDAO { public void原创 2013-05-01 17:41:20 · 113 阅读 · 0 评论 -
两个简单的设计模式
象2、 还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象3、 为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式对应的设计步骤:1、 将构造方法私有化2、 在类中创建一个本类对象3、 提供一个方法可以获取到该对象事例:[code="java"]public class SimpleDemo { public static void main(String[] args) { Student st1 = Stude原创 2013-04-25 08:18:51 · 104 阅读 · 0 评论 -
Template Method Pattern
[align=center][b]Template Method Pattern[/b][/align]1、模版介绍我们在使用JDBC的时候时常会遇到这种的问题,那就是很多操作代码是重复的,每次都写一遍又比较麻烦,那我们怎样去处理呢?可以使用模版模式来进行封装。(当然还有很多其它的方法,此处只是为了讲解模版模式,所以不对其它方式进行说明,例如:你可以封装一个专门对数据库进行操作的DB类)...原创 2013-05-09 17:17:41 · 107 阅读 · 0 评论 -
Cglib动态代理实现解析
在 JDK 动态代理源码解读 已经知道了JDK 动态代理的实现逻辑,这里我们来学习一下Cglib 的实现逻辑。以方便对动态代理有一个全面的认识。首先,我们来看一下生成代理类的时序图,对比起JDK的实现,它复杂了很多。整体看上去比较难以理解,那我们来看下这些类图,可能更加清晰些。来看看入口类 Enhancer ,它继承自 AbstractClassGenerator ,而 Abs...原创 2018-04-11 23:05:14 · 2427 阅读 · 5 评论 -
设计模式 之 代理模式
代理(Proxy)是一种设计模式,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式一般由以下三部分组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色...原创 2018-04-03 22:45:59 · 322 阅读 · 0 评论 -
动态代理
ke()方法执行的过程中,会调用被代理对象与代理对象相同的方法,同时还会调用Advice的相关方法。[img]http://dl2.iteye.com/upload/attachment/0088/8833/e6b81321-99a6-3df9-b2d3-dc50d314c869.png[/img][b]2、模拟Spring的事务[/b]1)建议接口[code="java"]import java.lang.reflect.Method;public inte原创 2013-09-02 12:11:55 · 216 阅读 · 0 评论