程序猿洞晓
一起谈谈设计模式(三):单例模式4种最终版 一起谈谈设计模式(三):单例模式4种最终版
关于单例模式有很多种实现方式,这些大家都是很熟悉了,各种博客也是写了N中方法,这些博客都看了一圈,但是很多就是一样的,有的标题是九种,其实还是那么核心的几种变来变去,还有把懒汉模式的安全和非安全分为两种,还有更厉害的是把懒汉基本写法、双重检查机制、双重检查机制+volatile三种分开,认为是三种写法,这是懒汉模式从非安全到安全的演变,完全就是一种模式,感觉完全都是在凑字数(如果这样凑,我估计能写出十几种,甚至更多)。总结一下其实只有四种,再怎么变都是离不开这四种写法。
2019-08-09
一起谈谈设计模式(二):建造者模式 一起谈谈设计模式(二):建造者模式
建造者模式是一种常用的设计模式,你可能每时每刻都在用只是你没有察觉到。比如我们常用的lambok内的@Builder注解,就是使用了建造者模式,业务代码中只要调用.builder方法,然后设置属性,最后调用.build就得到了最终的目标对象。这篇文章首先讲建造者模式内的几种角色,已经他们之间是如何配合完成一个对象的创建,最后……
2018-09-29
一起谈谈设计模式(一):适配器模式 一起谈谈设计模式(一):适配器模式
适配器模式,将一个类的接口转换成客户希望的另外一个接口,使得之前由于接口不兼容不能一起工作的那些类可以一起工作。举个栗子,现在小明需要到世界各国去访问,但是现在有一个问题需要解决,小明只会中文,英语、法语啥的都不懂,这个时候就需要请翻译官,每个翻译官对应一种语言。然后小明用中文告诉翻译官所要说的内容,翻译官将中文转换成对应……
2018-09-17
一起谈谈设计模式(零):静态代理、动态代理,以及动态代理的调用说明 一起谈谈设计模式(零):静态代理、动态代理,以及动态代理的调用说明
代理模式分为静态代理和动态代理两种方式,静态代理是在开发的时候就写好代理的过程,并且代理类要和目标类实现同一个接口。而动态代理是代理类通过实现InvocationHandler接口完成,在运行期间动态的构建代理对象,在动态代理的实现过程中还有另一个更为重要的类Proxy,准确的来说,Proxy负责生成代理对象,而InvocationHandler是根据生成的代理对象……
2018-06-08