设计模式学习之Singleton模式

来源:互联网 发布:免费淘宝货源供应商 编辑:程序博客网 时间:2024/05/16 07:23

单例模式应该是相当常见的一个设计模式,如web开发中每个servlet都是一个单例,spring框架bean管理很多时候我们都将一些组件类作为单例实例化。

之所以使用单例,是因为实例能够重复使用,实例化需要太多的资源,又或者要保持实例的唯一性(例如一个国家只能有一个皇帝)。


单例有懒汉式和饿汉式,这其实是根据实例化的时机区分的。


饿汉式

如其名,饿汉看到食物都是’相见恨晚‘的,直接扑过去吃的,所以很’急‘,在启动时便实例化。

public class Hungry {private static ArrayList list;static{list = new ArrayList();}public static ArrayList getArrayListInstance(){return list;}}

懒汉式

懒汉式是使用的时候才实例化,所以很懒

public class Lazy {private static ArrayList list;public static ArrayList getListInstance(){if(list == null){synchronized (Lazy.class) {if(list == null){list = new ArrayList();}}}return list;}}


原创粉丝点击