
Java设计模式学习笔记
七棵芹菜
这个作者很懒,什么都没留下…
展开
-
Java设计模式学习笔记:装饰器模式
装饰器模式其实比较常见,大家在开发过程中其实经常用到,只不过自己还没发觉自己用到了装饰器这种设计模式,下面通过一个生活中的例子来介绍装饰器模式。那煎饼果子来说,我们知道煎饼果子有各种配置,加鸡蛋加香肠加生菜加肉等各种豪华配置(bgm:哟哟,切克闹,煎饼果子来一套,我说鸡蛋你说要),我们用代码来体现:首先是普通的煎饼,不做任何升级的那种,假设5块钱一个:package com.rq.p...原创 2020-04-12 23:01:45 · 335 阅读 · 0 评论 -
Java设计模式学习笔记:代理模式(三)
上一篇文章介绍了通过JDKProxy的方式,将之前的静态代理转换为动态代理,传送门如下:Java设计模式学习笔记:代理模式(二)今天继续研究动态代理的另外一种形式,通过Cglib实现动态代理,Cglib是针对类来实现代理的,他的原理是对代理的目标类生成一个子类,并覆盖其中方法来实现增强,因为底层是基于创建被代理类的一个子类,所以它避免了JDK动态代理类的缺陷(被代理类必须要实现接口,JDK...原创 2020-03-30 21:47:15 · 234 阅读 · 0 评论 -
Java设计模式学习笔记:代理模式(二)
上一篇文章介绍了java代理模式的基本概念,以及通过一个生活中的例子介绍了静态代理的原理,传送门如下:Java设计模式学习笔记:代理模式(一)今天继续研究代理模式中另外一种比较重要的模式,动态代理,还是通过上次静态代理的例子来扩展讲解,看看如何从静态代理转为动态代理。上篇文章中介绍的静态代理,很明显的一个特点就是,通过硬编码的方式实现的代理,不例如扩展,比如说,我们静态代理举的例子中,...原创 2020-03-28 18:06:07 · 272 阅读 · 0 评论 -
Java设计模式学习笔记:代理模式(一)
今天学习代理模式,简单记一下笔记,代理模式其实就是使客户端在使用目标对象时,不直接操作目标对象,而是通过代理对象来操作目标对象,代理对象是对目标对象的增强。今天先说下静态代理,静态代理的实现模式一般是:首先创建一个接口(JDK代理都是面向接口的),然后创建具体实现类来实现这个接口,然后再创建一个代理类同样实现这个接口,不同之处在于,具体实现类的方法中需要将接口中定义的方法的业务逻辑功能实现,而...原创 2020-03-22 00:01:00 · 226 阅读 · 0 评论 -
Java设计模式学习笔记:原型模式
今天学到原型模式,在此做一个简单的笔记。首先介绍下定义,原型模式其实就是一个对象的创建模式,通过一个原型来复制出更多对象的方式,简单理解就是克隆对象。原型模式核心思想是创建对象不是通过调用构造方法,即不通过new的方式来实现,而是通过调用一个方法来实现,即克隆。克隆分为两种,浅克隆和深克隆,浅克隆只是值的复制,但是其引用地址是一致的,深克隆是所有的属性都是全新的。实现浅克隆,只需要实现Cl...原创 2020-03-01 00:11:08 · 178 阅读 · 0 评论 -
Java设计模式学习笔记:单例模式(二)
上一篇文章介绍了单例模式的最常见的两种,饿汉式和懒汉式,以及两种单例模式的优缺点以及解决方案,传送门如下:Java设计模式学习笔记:单例模式(一)今天继续研究单例模式的几种高级模式。首先解决一下上篇文章中的一个问题,通过synchronized关键字解决懒汉式单例线程安全的问题,有两种方式:1、内部类,代码如下:package com.rq.pattern;public ...原创 2020-02-27 00:24:09 · 199 阅读 · 0 评论 -
Java设计模式学习笔记:单例模式(一)
今天学到单例模式,对几种单例模式的特点做了一次梳理,从线程安全性和性能两个方面来说。首先都知道有两种最常见的单例模式:饿汉式和懒汉式,如下:饿汉式:public class Hangry() { private Hangry(){}; private static final Hangry instance = new Hangry(); ...原创 2020-02-21 16:08:57 · 166 阅读 · 0 评论