设计模式
2014Team
这个作者很懒,什么都没留下…
展开
-
cglib实现动态代理
一、步骤 创建Enhancer实例 通过setSuperclass方法来设置目标类 通过setCallback 方法来设置拦截对象 create方法生成Target的代理类,并返回代理类的实例 二、示例 <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.3.0&l原创 2020-06-27 21:16:17 · 462 阅读 · 0 评论 -
单例模式
单例模式,顾名思义就是只有一个实例。 1、单例类只能有一个实例 2、单例类必须自己创建自己的唯一实例 3、提供外部访问方法 一、饿汉式 package com.zzq.singleton; /** * 单例-饿汉式 */ public class Person { // 1、静态实例对象 private static Person singleton = new Person(); // 2、私有构造方法 private Person() { } //3、定义静态方法获取对象原创 2020-06-27 14:31:05 · 149 阅读 · 0 评论 -
JDK动态代理
一、动态代理 动态代理设计模式的原理:使用一个代理对象将原对象(目标对象)包装起来,然后利用该代理对象取代原对象。 任何对原对象的调用都要经过代理。代理对象决定是否以及何时将方法调用转到原对象上。 二、动态代理用那些 1 基于接口的动态代理 : 如 JDk 提供的代理 2 基于继承的动态代理 : 如第三方包 Cglib,javassist 动态代理 三、基于JDK动态代理使用 (1)创建被代理接口 package com.zzq.mybatis.proxy.jdk; /*原创 2020-06-26 21:24:08 · 161 阅读 · 0 评论 -
静态代理
一、什么是代理 二、原理 代理模式的主要作用是为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。 代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。 三、代码示例 (1)接口类 package com.zzq.mybatis.proxy; /** * 接口 */ public interface Pers原创 2020-06-25 17:25:43 · 174 阅读 · 0 评论