单例模式
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
所有类都有构造方法,不编码则系统默认生成空的构造方法,若有显示定义的构造方法,默认的构造方法就会失效。
分析:
1、通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象;
一个最好的办法就是,让类自身负责保存它的唯一实例;这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。
2、单例模式因为封装了它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单地说就是对唯一实例的受控访问。
实用类与单例区别?
比如实用类不保存状态,仅提供一些静态方法或静态属性让你使用,而单例类是有状态的;
实用类不能用于继承多态,而单例虽然实例唯一,却是可以有子类来继承。
实用类只不过是一些方法属性的集合,而单例却是有着唯一的对象实例。
单例模式的几种实现方式:
懒汉式:
package cn.pers.sample.singleton;
/**
* 懒汉式.用的时候再加载。<br/>
* (线程安全与否,与实现方式有关。调用效率不高,但是能延时加载)
* @author WeiSong <br>
* @since 0.0.1
* 2020/11/12 15:29
*/
public class SingletonLazy {
pri