单例设计模式

来源:互联网 发布:linux server 版本官网 编辑:程序博客网 时间:2024/06/15 09:01

  单例设计模式是一种比较常见的模式,开发时候用到别人的代码,新建一个类发现该类居然没有构造函数能调用,只能通过类似类.instance()的方法创建,很有可能就是使用了这种设计模式。

  那么什么是单例设计模式呢?

  其实它的取名已经告诉你啦,单个例子的设计方法,就是指一个类在内存中只存在一个对象,要保证这个对象的唯一性和单一性。

  那么为什么会出现这种设计模式呢?

  1、有些bean会被频繁使用,而创建它们会消耗许多内存,所以想要节省内存,只用创建一个对象便可。

  2、避免创建过多引起不必要的逻辑错误。

  那么单例设计模式有几种使用方式呢?

  1、懒汉式

    顾名思义,懒汉式就是指懒,在这里取名懒汉式是因为只有想用的时候才创建该单例对象。先看具体代码: 

class SingleL {private static SingleL s = null; // 懒汉private SingleL() {}public static SingleL getInstance() {if (s == null) {s = new SingleL();}return s;}}

  通过代码我们可以看到它实现单例模式是将构造函数私有化,同时只有通过调用静态方法getInstance()才可以创建该单例对象,而且该单例对象只创建一次。

  2、饿汉式

  顾名思义,饿汉式是指饥饿,在这里指只要加载了类,该单例对象就随着加载一起存在于方法区中。先看具体代码:

class SingleE {private static Single s = new Single(); // 饿汉式private Single() {}public static Single getInstance() {return s;}}

  通过代码我们可以看到,类一加载,单例对象就已经创建,而getInstance()方法则只是返回已经创建了的单例对象。

  那么懒汉式和饿汉式什么时候用呢?

  懒汉式因为再要使用的时候才创建,所以使它有了一个特点就是延迟加载,当需要考虑到性能快慢的时候可以考虑懒汉式。

  饿汉式因为类一旦加载就创建,之后便无法改变,所以它的安全性就比较高,当需要考虑安全性的时候推荐使用饿汉式。


 

 

0 0
原创粉丝点击