创建型开发模式-单例模式

2016-04-07  本文已影响35人  HideOnBush

前言:前几天,老师上课讲解了单例模式,想了想理解还不够深入,写篇文章整理一下,希望有更深入的理解。

本人之前在学习oc,java也只是上课的时候学的,平时也没有特别的去学习,所以本文由理解错或者写错的地方请谅解,也欢迎相互交流,学习。

单例模式

特点:

1.单例类只能有一个实例。

2.单例类的实例只能由自身创建。

3.这个实例必须被全体对象所访问。

通俗的讲,单例类只能实例化一次,之后再实例化也不会创建新的实例,还是之前创建的实例。那怎样的程序是用单例模式写的呢?比如说 Windows里的任务管理器,它只能打开一个,不能打开多个,因为只能实例化一个对象,创建一个窗口。(都是老师说的!~~)

java中单例模式的几种写法


1.简单的写法

public class Singleton{

          private static Singleton instance;

          private Singleton(){}

          public static Singleton getInstance(){

                   if(instance = null){

                        instance = new Singleton();

                   }

              return instance;

          }   

}     

这种是老师课上讲的,后来我参考了些资料,发现这种写法是不安全的,线程不安全,所以不是很推荐这种写法。但是这种写法有一个好处可以lazy loading(延迟加载) ,什么是延迟加载,就是类的实例化并不是在类装载的时候loading的,而是在调用getInstance的时候loading的,意在需要loading的时候loading。

暂时写这么多。。日后补充~~~~

上一篇 下一篇

猜你喜欢

热点阅读