首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

单例模式的五种写法

2013-09-07 
单例模式的5种写法单例模式(Singleton Pattern):在平时的开发中,可能会用到单例模式,许多java的笔试题中也

单例模式的5种写法

单例模式(Singleton Pattern):

在平时的开发中,可能会用到单例模式,许多java的笔试题中也会叫笔试者写出单例模式的那几种写法并且分析。那么下面就来轻轻地探讨一下,最简单的设计模式,即单例模式。


单例模式的解释:

GoF对单例模式的定义:保证一个类只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。说的意思就是一个类在整个程序中就只能有一个实例,并且这个类中要定义一些可以全局访问的属性、方法等。

 

单例模式的要点有三:

1、有且仅有一个实例。 2、自己创建自己的实例。 3、自己向整个应用程序提供这个实例。

 

单例模式的应用场景:

如窗口管理系统、打印缓冲池、文件系统它们都是原型的例子。


单例模式按实例化对象的时间先后可以大体分为两种类型,即饿汉式和懒汉式,接下来将列出5种单例模式的写法,并分析他们缺点。


第一种:饿汉式

/** *  单例模式-懒汉式(四) */public class Singleton {// 够造函数必须是私有的,不能被外部直接调用。private Singleton(){}// 暴露给外部,提供实例。public static Singleton getInstance(){return SingletonHolder.instance;}// 静态内部内,实现延时加载private static class SingletonHolder{public static Singleton instance = new Singleton();} }
优点:实现了延时加载,也就是说没有在类被加载时就去实例话对象。


经过这5种写法各有千秋,都有好有坏,现在大家用双重检查用得比较多,当然我觉得还是懒汉式(四)要好一点,这个跟android里面绑定service很相似,但是仅仅是内部类这一点。



















热点排行