![](https://img-blog.csdnimg.cn/20200424154022557.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
从一个客观的角度引入设计模式,并且讲解大家所熟知的Singleton模式的优缺点及其实现。随后着重从如何化继承为组合,以及如何创建对象的角度来引出数个常用以及常被问及的设计模式
loulanyue_
使我有洛阳二尺地,安能配六国将相
展开
-
通过DCL双端检锁机制+volatile禁止指令重排,解决单例模式的线程不安全
一、DCL( double check lock) 双端检锁机制存在指令重排可能使结果不唯一,不一定线程安全,可通过volatile指令解决二、并发多线程下存在问题不加synchronized结果发生改变,直接添加synchronized代码上锁的部分过多,不够灵活三、解决单例模式线程不安全代码示例package com.yfy.multithreading.singleton;/** * @author youfyu * @date 2020/06/28 * 单例模式线程不安全情况下原创 2020-06-28 22:29:22 · 1403 阅读 · 0 评论 -
深入了解工厂模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。介绍意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问...原创 2019-07-19 19:34:20 · 133 阅读 · 1 评论 -
观察者模式的使用示例
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的...原创 2019-07-24 22:16:14 · 322 阅读 · 0 评论 -
适配器模式的使用示例
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。我们通过下面的实例来演示适配器模式的使用。其中,音频...原创 2019-07-29 22:22:48 · 494 阅读 · 0 评论 -
深入浅出单例模式(Singleton Pattern)
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必...原创 2019-07-20 21:13:11 · 165 阅读 · 0 评论 -
深入浅出建造者模式
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工...原创 2019-08-01 19:42:19 · 89 阅读 · 0 评论