设计模式概述

创建型模式:关注对象创建过程的的设计模式;
结构型模式:关注类和对象组合的设计模式;
行为型模式:关注对象间的通信过程的设计模式;

单例模式的定义和作用

单例模式
目的:使得类的一个对象成为该类系统中的唯一实例;
定义:一个类有且只有一个实例,缤纷茄子形式梨花香整个系统提供;
单例模式要点:某个类只能由一个实例对象;
必须自行创建实例;
必须自行向整个系统提供这个实例;
实现:只提供私有的构造方法;
含有一个该类的静态私有对象;
提供一个静态的公有方法用于创建、获取静态私有对象;
实现方案:
饿汉式:对象创建过程中实例化;
懒汉式:静态公有方法中实例化;

饿汉式的代码实现

单例模式:
a、饿汉式(空间换时间 速度快 占用空间大)
1、创建类中私有构造
2、创建该类型的私有静态实例
3、创建公有静态方法返回静态实例对象

懒汉式的代码实现

//懒汉式的代码实现
//懒汉式:类内实例对象创建时并不进行直接初始化,直到第一次调用get方法时,才完成初始化
1.创建私有构造方法
2.创建静态的该类实例对象
3.创建开放的静态方法提供实例对象

public class SingletonTwo{
private SigletonTwo(){

}
private static SingletonTwo instance = null;
public static SingletonTwo getInstance(){
if(instance==null)
instance = new SingletonTwo();
return instance;
}
}

饿汉式 pk 懒汉式

饿汉式线程安全,空间换时间,第一次运行块
懒汉式存在线程风险,时间换空间,第一次运行慢
当多个线程并发操作,由于饿汉式在类加载时对象就被实例化创建,线程的访问对象都是唯一的。所以线程安全。而懒汉式由于线程的时间边切换,存在线程风险。

单例模式的特点及适用场景

单例模式的使用场景:
1、创建对象时占用资源过多,但同时又需要用到该类对象
2、对系统内资源要求统一读写,如读写配置信息
3、当多个实例存在可能引起程序逻辑错误,如号码生成器

单例模式的优点:
1.在内存中只有一个对象,节省内存空间
2.避免频繁的创建销毁对象,提高性能
3.避免对共享资源的多重占用
缺点:
1.拓展相对比较困难
2.如果实例化后的对象长期不利用,系统将默认为垃圾进行回收,造成对象状态丢失引发一系列系统问题。

最后修改:2019 年 12 月 31 日 11 : 33 PM
如果觉得我的文章对你有用,请随意赞赏