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

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


本人之前在学习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。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容