工作好几年了,在实际编码中设计模式也用到了不少,打算写一个介绍设计模式的系列,为后来者提供参考,也为是给自己做一个总结。本系列文章只关系到技术本身,不涉及到业务,笔者水平有限,写的不好,请勿喷。如有错误请在评论区指正,谢谢!

本篇是java设计模式的第一篇——单例模式

单例模式是23种设计模式中最好理解的一种设计模式,分为懒汉式和饿汉式。

饿汉式:

class Singleton { // 直接创建对象 private static final Singleton singleton = new Singleton(); // 私有化构造函数 private Singleton() {} // 返回对象实例 public static Singleton getInstance() { return singleton; }}

懒汉式:

class Singleton { // 声明变量 private static Singleton singleton = null; // 私有构造函数 private Singleton() {} // 提供对外方法 public static Singleton getInstance(){ if(singleton == null){ synchronized(Singleton.class) { if(singleton == null) { singleton = new Singleton(); } } } return singleton; }}

总结一下要点:

1. 只能拥有一个对象。

2. 构造函数私有,以保证不能创建多余的对象。

3. 在类内创建一个对象,将其引用作为成员变量,但构造函数是私有的,无法new对象,只能将类内对象的引用加上static修饰符,以保证可以直接用类加载调用。

4. 这个对象作为成员变量,一般为private,所以有对应的get方法。

5. getInstance() 方法必须为静态方法。

查看原文 >>
相关文章