懒汉模式

java设计模式-- 单例模式

a 夏天 提交于 2019-11-27 09:20:29
在很久之前,也就是在大二暑假的时候,那时候看马士兵的视频教程中有提到很多的设计模式。 java的设计模式大致可以分为3大类,23种设计模式。 其中,创建型模式有5种: 单例模式 、建造者模式、原型模式、工厂模式、抽象工厂模式。 结构型模式有7种:设配器模式、装饰器模式、代理模式、外观模式、享元模式、组合模式、桥接模式。 行为模式一种有11种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 这23种设计模式并不是相互独立的,它们之间也有相互的联系。 本篇中要讲的是单例模式。 单例模式顾名思义,就是指本系统中只允许存在 一个实例 。它是一个比较基本的模式,我们日常设计中经常使用到的设计模式之一,比方说我们经常使用的线程池,缓存,对话框,打印机,日志对象,显卡等设备驱动,这类对象只能有一个势力,如果制作多个势力,就可能会导致一些问题。通过单例模式,我们可以方便对实例的个数进行控制从而节省一些系统开销。在单例模式中,我们有饿汉模式和懒汉模式。字面理解,饿汉模式就是肚子饿了,一开始就把单例创建出来了,懒汉模式就是肚子不饿,等到肚子饿时(系统调用)才去创建。 恶汉模式是线程安全的,懒汉模式因为在调用时创建,所以是非线程安排。 在创建单例模式时,我们一般都需要把构造方法私有化,然后再我们的类中声明一个静态方法