您的位置:首页 > 其它

单例模式

2016-07-05 20:31 288 查看

单例模式

优点:只包含一个实例;共享资源,全局使用;节省创建时间,提高性能。

案例:窗口管理器、打印缓冲池、文件系统等

表现方式:饿汉式、懒汉式(线程安全与线程非安全)等

*饿汉式

注意构造函数为[private]类型,防止被引用

final关键字:final类不能被继承,没有子类;final方法不能被子类方法覆盖,可以被继承;final成员变量表示常量,只能被赋值一次,赋值后不能再改变;final不能修饰构造方法;private类型方法默认是final类型的。

public  class Singleton{
private static final Singleton instance= new Singleton();
private Singleton(){}    /* 私有构造方法,防止被实例化 */
public static Singleton getInstance(){
return instance;
}
}


懒汉式

非线程安全

public class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
instance= new Singleton();
}
return instance;
}
}


线程安全:给方法getInstance添加synchronized关键字

public class Singleton{
private static Singleton instance;
private Singleton(){}  /* 私有构造方法,防止被实例化 */
public static synchronized Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}


参考

http://blog.csdn.net/longyulu/article/details/9159589
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式