首页 > 代码库 > 初探单例模式学习笔记
初探单例模式学习笔记
一、如何防止一个类产生多个实例呢?
1.不做任何措施,贴出一幅海报,通知所有程序员不能对这个类创建多个实例 (不现实)
2.让这个类无法创建另一个实例 -> 单例模式
二、但是对类进行实例化,它的决定权在类的外部,如何将决定权回归类的自身呢?
-> 将构造函数变成private类型 ,不允许外界直接调用构造方法创建实例
三、但我们总要给外界提供一个途径获得类的实例
class T{ private T(); public static T getInstance() { return new T(); }}
四、事实上现在允许创建第二个实例,如何防止呢
class T{ private static T t; private T() { } public static T getInstance() { if(t==null) t = new T(); return t; } }
五、可以通过创建好对象,返回对象,来控制只有一个实例。如果创建过程复杂,可以写在静态块中。
/* 单例模式*/class T{ private static T t; static{ t = new T(); } private T() { } public static T getInstance() { //if(t==null) t = new T(); return t; } }public class A{ public static void main(String[] args) { T a = T.getInstance(); T b = T.getInstance(); System.out.println(a==b); }}
六、静态块什么时候会执行它呢?
-> 当类第一次加载的时候
单例模式的变种:少例 ->对象池技术
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。