ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件工程 >> 设计模式-单例模式(Singleton Pattern)

设计模式-单例模式(Singleton Pattern)(1/3)

来源:网络整理     时间:2016-04-24     关键词:singleton,pattern

本篇文章主要介绍了"设计模式-单例模式(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 }

这种实现方式我们一般叫它:懒汉式

为什么呢?因为它直到第一次被调用的时候才会生成自己的实例(就像我们每次都要到交作业的时候才会开始写作业一样,总之就是懒呗= ̄ω ̄=)

注意:懒汉式是线程不安全的

相关图片

相关文章