码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之单例模式

时间:2015-03-18 20:09:18      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

    使用场景:

    在软件开发中,软件开发人员希望一些服务类且仅有一个实例供其他程序使用。如:打印机服务程序或对于系统配环境的一些控制,为了避免鬓发访问造成的不一致问题,希望仅为其他程序提供一个实例;又如,要生成唯一序列号的环境或创建一个对象需要消耗的资源过多(要访问IO和数据库等资源)。

    对于整个系统使用的对象可以使用一个全局变量,在正确编写程序的情况下也可以保证唯一的一个实例,但如果系统随之不断扩张,就无法保证系统中有且只有一个实例。

单例模式的类图:

单例模式是一个比较简单的设计模式,其本质上就是自行实例化并始终向系统提供某个类的唯一实例。

 技术分享

单例模式实现代码:

懒汉模式:

public class Singleton{
private static Singleton singleton=null;

private Singleton(){
}

public static Singleton getSingleton(){
if(singleton=null)
{
singleton=new Singleton();
}
return singleton;
}
}

该模式在多线程并发模式下是线程不安全的,所有以防高并发时出现问题,可以在getSingleton方法前加上synchronized关键字,当然也可以在getSingleton方法内加上synchronized关键字,这是针对java来说,如果用.net则要用lock锁来实现线程安全。

饿汉模式:

public class Singleton{
private static final Singleton singleton=new Singleton();

private Singleton(){
}

public static Singleton getSingleton(){
return singleton;
}
}

 

设计模式之单例模式

标签:

原文地址:http://www.cnblogs.com/sumuncle/p/4347940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!