本篇文章主要介绍了"设计模式-单例模式(Singleton Pattern)",主要涉及到singleton,pattern方面的内容,对于软件工程感兴趣的同学可以参考一下:
本文由@呆代待殆原创,转载请注明出处。 单例模式简述单例模式保证了我们的类只有一个实例,并且我们在任何时候都可以取得这个实例,其中保证我们的类有且仅有一个实例在...
本文由@呆代待殆原创,转载请注明出处。
单例模式简述
单例模式保证了我们的类只有一个实例,并且我们在任何时候都可以取得这个实例,其中保证我们的类有且仅有一个实例在某些时候是相当重要的事情,比如我们只需要一个线程池而不是两个等等,但是我们也要注意,单例模式适用的情况比我们想象中的要少,所以请不要滥用这个模式。
单例模式具有的一些特征
1,单例模式保证了我们的程序中有且仅有一个实例的存在。
2,我们在任何时候都能取得这个实例。
3,单例模式的构造方法是私有的,所以在不破坏这一私有条件的情况下单例类是不能作为父类存在的。
单例模式的定义与基本结构
单例模式只有一个类而已,所以实际上并不存在结构这一说= =,但是我们还是可以看一下它的定义。
定义:确保类有且仅有一个实例,并保证任何时候都能访问这个实例。(这句话好像已经出现了好的次 = =)
单例模式的定义与结构都非常简单,理解起来甚至不需要举额外的例子,但是,真正去实现单例的时候我们还是有很多细节要注意的,那么下面我们就在实际的代码中继续研究吧。
单例模式的代码实现(Java版)
代码实现
1publicclass MySingleten {
2public staticMySingleten instance=null;//指向实例的变量 3private MySingleten(){}//私有化构造函数,然别的代码无法创建这个类的实例 4public static MySingleten getInstance(){//我们取得这个单例的方法。 5if(null==instance){
6 instance=new MySingleten();
7 }
8return instance;
9 }
10publicvoid MyFunction(){//一般方法的代表11 System.out.println("我是单例,这是我的方法");
12 }
13 }
这种实现方式我们一般叫它:懒汉式
为什么呢?因为它直到第一次被调用的时候才会生成自己的实例(就像我们每次都要到交作业的时候才会开始写作业一样,总之就是懒呗= ̄ω ̄=)
注意:懒汉式是线程不安全的