所谓的单例模式是设计模式中最简单的设计模式,只是一种特殊类的写法。何为单例,从字面上理解单例单例”单独的特例“(个人理解术语)。为什么会出现单例呢,编程的世界其实就是模拟现实世界,在现实世界中独一无二的东西多得很,比如就一个太阳,就一个地球,就一个太平洋。。。。。。。
单例就是模拟现实中独一无二的东西,在程序中被抽象成一个类,但是这个类非常的特殊,因为这个东西是独一无二的东西。所以只能被初始化一次,那如何来实现初始话一次呢,其实你网上一百度单例网上有很多写单例的例子,但是各有一些弊端,比如并发的时候会出现初始化2次的啊,这里我介绍的是一种相对最简单不存在多线程问题的写法(以c#为例子)
毛主席独一无二
class MaoZhuXi
{
private static MaoZhuXi instance = new MaoZhuXi();//第二步建议一个静态属性(静态属性的意义就是这个属性归属于这个类在类的创建初期和类一起被初始化,只能被初始化一次。关于静态属性请搜索相关概念看看)来获得一个只被初始化一次的对象。问题又来了怎样被外界访问呢?请看第三步。
private MaoZhuXi(){};//第一步让构造函数为私有的,这样就可以解决不能被夺次初始化了,但是这样一次都不能初始化了,那怎么解决不能初始化的问题呢?看第二步
public static MaoZhuXi GetMao()//第三步用一个静态函数返回出那个静态属性指向的对象。
{
return instance;
}
}
以上只是写单例的一种方式,但是自认是最简单的一种同时不存在并发性问题