
设计模式
沐谦
这个作者很懒,什么都没留下…
展开
-
通过容器实现单例模式
今天再为大家提供一个实现单例模式的方法,注册式单例模式。 首先创建一个容器类,用来盛放创建的单例。 public class ContainerSingleton2 { private ContainerSingleton2(){} private static Map<String,Object> ioc=new ConcurrentHashMap<>(); public static Object getInstance(String clas原创 2021-03-21 11:46:32 · 470 阅读 · 0 评论 -
通过枚举实现单例模式
通过枚举实现单例模式 对于饿汉式单例模式和懒汉式单例模式了解的同学,使用以上两种单例模式,我们均可以通过反射的方式破坏单例模式的特性。那么,如何才能避免程序开发中使用反射的方式破坏单例的这种行为呢?接下来用过枚举的方式来创建的单例模式就可以避免上述的问题。 直接上代码: public enum EnumSingleton { INSTANCE; //枚举类可以自定义一些属性 private Object data; public Object getData() {原创 2021-03-20 23:01:53 · 837 阅读 · 0 评论 -
单例模式之懒汉式单例模式
单例模式之懒汉式单例模式 本文将探讨三种懒汉式单例模式,会从代码的运行效率,线程安全等方面探讨。 在上一篇文章中,刚刚介绍饿汉式单例模式,在本文开头先简单的说一下懒汉式单例模式和饿汉式单例模式的区别: 首先懒汉式单例模式,是在程序需要用到该实例时才会创建的。这样就不会像饿汉式一样,在类加载过程中就会创建。这样就减少了内存的浪费,当然也自然而然的带来了一些缺点:需要时才创建,影响程序的执行效率。另外,懒汉式单例模式在使用时进行创建,势必会带来线程安全的问题,需要解决以上问题,就需要用到锁。锁的使用也在一定程度原创 2021-03-20 19:58:00 · 5282 阅读 · 0 评论 -
单例模式之饿汉式单例模式
单例模式之饿汉式单例模式 单例模式三要素: 1、私有的静态属性,这主要是为了存储类唯一的实例 2、公共的静态方法,这主要是为了提供给外键生成获取单例的方法 3、用于限制类再次实例话的措施。一般会私有化类的构造方法。 饿汉式单例模式 在类加载过程中就直接创建单例。代码如下: public class HungrySingleton { private HungrySingleton() { } private static final HungrySingleton hungrySin原创 2021-03-20 16:55:07 · 2744 阅读 · 0 评论