![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java设计模式
小森、
这个作者很懒,什么都没留下…
展开
-
多线程设计模式之犹豫模式
目录一、简述二、实现 一、简述 Balking (犹豫)模式用在一个线程发现另一个线程或本线程已经做了某一件相同的事,那么本线程就无需再做了,直接结束返回。 二、实现 @Slf4j(topic = "c.MonitorService") class MonitorService { // 用来表示是否已经有线程已经在执行启动 private volatile boolean starting; public void start() { log.info("尝试启动监原创 2021-02-23 11:24:43 · 117 阅读 · 1 评论 -
多线程设计模式之生产者/消费者模式
目录一、简述二、实现 一、简述 异步模式之生产者/消费者: 不需要产生结果和消费结果的线程一一对应 消费队列可以用来平衡生产和消费的线程资源 生产者仅负责产生结果数据,不关心数据该如何处理,而消费者专心处理结果数据 消息队列是有容量限制的,满时不会再加入数据,空时不会再消耗数据 JDK 中各种阻塞队列,采用的就是这种模式 二、实现 //Message class Message { private int id; private Object message; public M原创 2021-02-22 14:57:59 · 350 阅读 · 0 评论 -
多线程设计模式之保护性暂停
目录一、简介二、实现三、带超时版实现 一、简介 同步模式之保护性暂停,即 Guarded Suspension,用在一个线程等待另一个线程的执行结果。 有一个结果需要从一个线程传递到另一个线程,让他们关联同一个 GuardedObject 如果有结果不断从一个线程到另一个线程那么可以使用消息队列 JDK 中,join 的实现、Future 的实现,采用的就是此模式 因为要等待另一方的结果,因此归类到同步模式 二、实现 class GuardedObject { private Object re原创 2021-02-22 12:54:28 · 128 阅读 · 0 评论 -
多线程设计模式之两阶段终止模式
目录一、简述二、用两阶段终止模式终止监控操作1.利用 interrupted2.利用停止标记 一、简述 Two Phase Termination:简单来说就是将终止过程分成两个阶段,其中第一个阶段主要是线程 T1 向线程 T2发送终止指令,而第二阶段则是线程 T2响应终止指令(在这之前先进行处理操作。例如:释放锁,释放资源等)。而不是使用线程对象的 stop() 方法强制停止线程。 二、用两阶段终止模式终止监控操作 实际工作中,需要有监控系统(监控线程)动态的检测被监控系统。监控系统发送采集指令从被监控系原创 2021-02-21 11:37:16 · 264 阅读 · 0 评论 -
Java设计模式之观察者模式
Java观察者模式 文章目录Java观察者模式一、什么是观察者模式二、具体实现参考 一、什么是观察者模式 当对象间存在一(被观察者)对多(观察者)的依赖关系时,使用观察者模式。 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,是一种对象行为型模式。 观察者模式包含的四个角色: 抽象被观察者角色:把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除观察者角色。一般用一个抽象原创 2020-12-12 12:56:00 · 109 阅读 · 0 评论 -
Java设计模式之策略模式
Java策略模式 文章目录Java策略模式前言一、策略模式是什么?二、策略模式的简单实现三、策略模式的优缺点四、参考 前言 今天在学习时遇到了Comparator,发现之前记忆的有些模糊了,便重新温习,发现了Comparator便使用了策略模式,所以又简单学习了策略模式,用本篇来简单记录。 一、策略模式是什么? 策论模式(StrategyPattern),简单地说就是对象动态切换不同“策略”,使对象有不同的行为。策略模式封装了变化。策略模式又叫算法簇模式。它定义了一系列的算法用来完成相同的工作。策略模式让算原创 2020-12-08 22:40:47 · 545 阅读 · 0 评论 -
Java设计模式之装饰者模式
装饰者模式 文章目录装饰者模式一、什么是装饰者模式?二、装饰者模式实现 一、什么是装饰者模式? 即动态的给对象增加额外的功能,也就是动态对对象进行增强。 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为。由于继承关系,无论我们包装多少层,都是 is-a的关系(即被装饰后的被装饰者is a 被装饰者) 三种增强方式:继承、装饰者模式、代理模式 继承的缺陷:如果拓展功能很多,势必会有很多子类,增加系统复杂性;并且子类实现需求后,增强的内容是固定的。 二、装饰者模式实现 基本步骤: 定义原创 2020-12-07 22:47:56 · 139 阅读 · 0 评论 -
Java设计模式之代理模式
Java代理模式 文章目录Java代理模式一、什么是代理模式?二、静态代理三、动态代理三、CgLib代理四、参考 一、什么是代理模式? 代理模式是对象的结构模式。 代理模式(Proxy)就是给某个对象提供一个代理对象,通过代理对象控制对原对象的引用。 这样可以在原对象的基础上增强格外的功能。 生活中处处都是代理。 举个例子:某明星可以去拍电影,唱歌,但不能什么事都自己干,所以他/她请了个经纪人替他排期,给明星安排什么时候拍戏,什么时候录歌。(可能不太恰当~~) 二、静态代理 身为明星,唱歌演戏不能少,所以原创 2020-12-06 10:19:51 · 179 阅读 · 0 评论