设计模式
文章平均质量分 52
想要胖胖的豪
Life may have thrown me a curve ball,but we wil face the future...together
展开
-
JMM学习之有序性示例-双重检测延迟加载单例模式最终版
1、问题展示代码public class OrderlyTest { private int x=0; private int y=0; private int a=0; private int b=0; private void threadA() { a = 1; x = b; } private void threadB() { b = 1; y = a; }原创 2021-06-12 22:24:26 · 116 阅读 · 0 评论 -
观察者模式
介绍观察者模式是发布/订阅(pub/sub)模式,是一种推模式。观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某个主题对象。主题对象一旦发生改变时,会通知所有观察者对象,使它们能够自动更新自己。观察者模式也解除了代码的耦合,让耦合的双方都依赖于抽象,而不是直接依赖于具体,从而让各自的变化不会影响另一边的变化。结构图Subject类 : 主题对象/抽象通知者,一般用一个接口或者抽象类实现,它把所有的观察者保存到一个集合里,每个主题都可以有任何的数量的观察者。该类里规范了一些接口,比如添原创 2021-03-24 19:00:46 · 77 阅读 · 0 评论 -
设计模式之单例模式
在面试时谈到单例模式,一般都会回答懒汉式单例模式和饿汉式单例模式,但是什么又是懒汉式单例模式和饿汉式单例模式呢?只有临时突击设计模式的人才会这么回答吧。 (1)什么是单例模式 单例模式是一种对象创建模式,用于确保一个类只产生一个实例。 (2)为什么要用单例模式 a、对于频繁使用的对象(特别是重量级对象而...原创 2018-11-13 14:16:33 · 193 阅读 · 0 评论 -
设计模式之代理模式
什么是代理模式,简单的来说代理模式是使用代理对象完成用户请求,屏蔽用户对真实对象的访问。比如日常生活中的房屋中介,他们代理房主去出售房间,而不用房主亲自出马,客户直接接触的是中介,并不能接触到房主,这样节约了房主的时间,也保护了房主的隐私。 代理模式的结构 代理模式的角色 角色 作用 主题接口(抽象角色) 定义代理类和真实主题的公共对外方...原创 2018-12-12 16:51:16 · 153 阅读 · 0 评论 -
代理模式之静态代理
动态代理比静态代理使用更多,也比静态代理使用更加简单,可是为何还要学习静态代理呢? 本人认为静态代理需要自己去实现,在学习的过程中可以让我们更好的理解代理模式。 本文将结合代理模式的延迟加载和安全性能来实现静态代理。 延迟加载 在上一文中我们可以了解到代理模式可以实现延迟加载来缩短系统的开启时间,文本中不会在提延迟加载的作用了,主要精力放在代码实现上。...原创 2018-12-15 16:35:46 · 126 阅读 · 0 评论 -
代理模式之JDK的动态代理
JDK的动态代理比较简单,是内置在JDK中的,不需要引入第三方jar包,但相对其他代理它的功能就比较弱了。 下面就以demo为例来学习它。分为延迟加载demo和安全作用的demo 延迟加载demo 主题接口: 定义代理类和真实主题的公共对外方法/** * 主题接口 */public interface IDBQuery { ...原创 2018-12-18 12:08:21 · 157 阅读 · 0 评论