设计模式
IcyDate
这个作者很懒,什么都没留下…
展开
-
GOF23学习笔记(一)单例模式
单例模式核心作用:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。单例模式的优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要许多资源时,如读取配置,产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。常见的五种单例模式实现方式饿汉式(线程安全,调用效率高,但不能延时加载)public class Singleton1 ...原创 2018-05-14 12:41:32 · 257 阅读 · 0 评论 -
GOF23学习笔记(二)为什么单例模式中双重检查锁会有缺陷
双重检测锁实现public static Singleton3 getInstance() { if (instance == null) { synchronized (Singleton.class) { if (instance == null) { instance = new Singleto...原创 2018-05-14 12:47:37 · 1545 阅读 · 0 评论 -
GOF23学习笔记(三)工厂模式
工厂模式实现创建者与调用者的分离。关注产品,不关注细节。学习工厂模式之前,我们先来了解一个面向对象设计的基本原则OCP(开闭原则,Open-Closed Principle):一个软件的实体应该对扩展开放,对修改关闭。(也就是说,如果我有一个类实现了一部分功能,现在我想添加一个功能,最好通过一个一个新的类来实现,而不是修改已有的类)工厂模式的核心本质-实例化对象:用工厂方法代替new操作。-将选择...原创 2018-05-27 17:06:18 · 306 阅读 · 0 评论 -
GOF23学习笔记(五)原型模式
原型模式● 以某个对象为原型,复制出新的对象,显然,新的对象具有原型对象的所有特点● 当通过new创建一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式● 优势:效率高,避免了重新执行构造过程步骤● new创建出的对象属性值采用的是默认值,而克隆出的对象属性值与原型对象完全相同并且不会影响原型对象...原创 2018-06-12 19:52:54 · 286 阅读 · 0 评论 -
GOF23学习笔记(四)建造模式
建造模式的本质● 分离了对象子组件的单独构造(由Builder来负责)和装配(由Director来负责)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构建过程复杂的情况下使用。● 由于实现了构建和装配的解耦。不同的构建器,相同的装配,也可以做出不同的对象;相同的构建器,不同的装配顺序也可以做出不同的对象。例子飞船类,由轨道舱类,引擎类,逃逸舱类组成。如果不使用建造者模式,我们的客户端不仅需...原创 2018-06-05 20:57:36 · 426 阅读 · 0 评论 -
GOF23学习笔记(六)适配器模式
适配器模式● 将一个类的接口转换成客户端希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作● 举个例子,以前的键盘大多是PS/2接口的,假如你的笔记本想使用这个键盘,但笔记本只有USB接口,这个时候就需要一个适配器(PS/2转USB接口),相比于买一个新的键盘,买一个转接口开销更小。编程也是一样,相比于重新编写一个类,写一个适配器来调用它更加方便。工作场景- ...原创 2018-06-19 11:11:51 · 199 阅读 · 0 评论