2021-09-23 软件设计之单例模式详解

一、软件设计模式

1、概念

软件设计模式(Design pattern),又称设计模式,是一套被反复使用,多数人知晓,经过分类编目、代码设计经验的总结。

2、作用

使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性和程序的重用性。

java有23种设计模式。

二、单例模式

单例模式(Singleton pattern)是java最简单的设计模式之一,属于创建型模式,它提供了一种创建对象的最佳方式。

 单例模式要保证一个类仅有一个实例,并提供一个全局都可以访问的方式。

1、 好处:

可以节省内存和时间。

2、开发步骤: 

1、私有化构造方法,不然外界随便new对象。 

2、自己在类的内部创建一个对象。

 3、提供公共的访问方式,并返回自己创建的对象。

3、常用的实现方式:

1、懒汉式

2、饿汉式

区别:

1、线程安全性:

饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,不再改变。

懒汉式如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。

2、实例化时机:

懒汉是调用方法时候实例化对象,饿汉是加载类的时候就实例化。

三、单例模式的具体实现

1、饿汉式:

不管需不需要都先创建出来,方便使用。

2、懒汉式:

按需加载/延迟加载,只有需要时才创建。

3、静态饿汉式

使用静态代码块的方式实现,这种方法与第一种类似,也是一种饿汉模式。

4、静态懒汉式

使用内部类方式,与第二种类似,是一种懒汉模式。

需要注意的是:

使用内部类的方式,无需显式的进行同步加锁操作,可以通过类的静态成员只被加载一次的特嗲保证只有一个实例对象。 但是这种方法并不是饿汉式,而是懒汉式,因为加载一个类时,其内部类不会同时被加载。

一个类被加载,当且仅当其某个静态成员或者构造器被调用时才发生。 可以说这种方式是单例模式的最优解。 (代码是顺序执行的,先执行方法中的代码,return时才返回到创建对象,走静态内部类。)

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91609 人正在系统学习中

来源:抱羊

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年8月20日
下一篇 2021年8月20日

相关推荐