摘要: 一、饿汉式 /** * 饿汉式 */public class Singleton01 { private static final Singleton01 instance = new Singleton01(); private Singleton01(){} public static Sing 阅读全文
posted @ 2020-04-25 13:08 引路的风 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 一 、准备工作 $ yum install wget $ cd /opt/ $ mkdir redis $cd redis $ ll wget http://download.redis.io/releases/redis-6.0.5.tar.gz 到这里,准备工作已经完毕。 二、编译 $ tar 阅读全文
posted @ 2020-06-21 15:53 引路的风 阅读(312) 评论(0) 推荐(0) 编辑
摘要: zk实现分布式锁纵观网络各种各样的帖子层出不穷,笔者查阅很多资料发现一个问题,有些文章只写原理并没有具体实现,有些文章虽然写了实现但是并不全面 借这个周末给大家做一个总结,代码拿来就可以用并且每一种实现都经过了测试没有bug。下面我们先从最简单的实现开始介绍: 简单的实现 package com.s 阅读全文
posted @ 2020-05-24 18:25 引路的风 阅读(1038) 评论(1) 推荐(0) 编辑
摘要: 原型模式: 原型模式又叫克隆模式 Java自带克隆模式 实现克隆模式必须实现Cloneable 接口,如果不实现会发生java.lang.CloneNotSupportedException异常 当某个类的属性已经设定好需要创建很多相同属性值的对象的时候使用clone模式非常方便 使用clone模式 阅读全文
posted @ 2020-05-23 23:52 引路的风 阅读(945) 评论(0) 推荐(0) 编辑
摘要: 状态模式: 根据状态决定动作 当动作一定但是状态可扩展适合使用状态模式 当动作变化不适合 当状态不会扩展也没有必要使用使用传统的switch即可。 先看一个没有使用状态模式的例子: package com.srr.dp.state; /** * 我的女朋友有很多种状态 * 当给我的女朋友添加新的状态 阅读全文
posted @ 2020-05-23 21:40 引路的风 阅读(913) 评论(0) 推荐(0) 编辑
摘要: 适配器模式使用案例: 数据库连接中的驱动 java虚拟机 zookeeper客户端 redis客户端 误区: java中各种带Adapter后缀的类并不是使用适配器模式只是方便程序员编程使用。经典的应用场景如下: 1 package com.srr.dp.adapter; 2 3 import ja 阅读全文
posted @ 2020-05-19 23:41 引路的风 阅读(502) 评论(0) 推荐(0) 编辑
摘要: 构建器模式: 分离复杂对象的构建和表示 同样的构建过程可以创建不同的表示 无需记忆,自然使用 同模板方法模式非常相似,只是模板方法是强调方法执 场景:假如有一个类非常复杂,它有100个属性,如果使用java提供的构造方法构建它需要给它传递100个参数,这么构建岂不是很费劲,而且在实际的业务场景中并不 阅读全文
posted @ 2020-05-19 23:14 引路的风 阅读(780) 评论(0) 推荐(0) 编辑
摘要: 笔者看过网络上各种各样使用redis实现分布式锁的代码,要么错误,要么片段化,没有一个完整的例子,借这个周末给大家总结一下redis实现分布式锁的两种机制 自旋锁和排他锁 鉴于实现锁的方式不同,那么这里使用策略模式来组织代码 一、自旋锁 分布式锁抽象策略接口 package com.srr.lock 阅读全文
posted @ 2020-05-10 19:36 引路的风 阅读(1569) 评论(2) 推荐(0) 编辑
摘要: 享元模式就是所谓的池化的思想,数据库连接池、线程池、JAVA String用的就是享元模式。有兴趣可以去阅读其底层实现原理。这里就不赘述了。 享元模式模拟java线程池代码如下: package com.srr.dp.flyweight; import java.util.ArrayList; im 阅读全文
posted @ 2020-05-09 00:09 引路的风 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 组合模式:树状结构专用模式 代码如下: package com.srr.dp.composite; import java.util.ArrayList; import java.util.List; /** * 节点抽象 */ abstract class Node { private int i 阅读全文
posted @ 2020-05-08 23:14 引路的风 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 任何可以产生对象的方法或者类,都可以称之为工厂。单例就是所谓的静态工厂。 为什么jdk中有了new,还需要工厂呢? a、灵活的控制生产过程 b、给对象加修饰、或者给对象加访问权限,或者能够在对象生产过程中添加一些日志信息,再或者根据应用场景添加一些实际的业务处理等等。 1、静态工厂 单例模式:一种特 阅读全文
posted @ 2020-04-28 22:41 引路的风 阅读(1019) 评论(0) 推荐(1) 编辑