公司昨天招聘的面试题中就有一题是用单例模式设计一个类。说实话我只是知道什么意思,但具体我当时还真的写不出来。今天翻了一下好久没看的大话设计模式,找到了这一章,并结合百科做了一下了解:
单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
显然单例模式的要点有三个;一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例。
通过以上文字说明,我的理解为:
- 需要对外进行封闭不可能任意的进行实例化;
- 该类可以自己创建自己;
- 提供公用的外部接口返回自己,且自身要为静态的
所以写出的示例代码即为:
以上:构造函数私有,则外部不允许访问即不能实例化新对象,GetInstance方法为公有可以外部调用,返回的为静态的Singleton类型。所以在调用GetInstance方法的地方返回的都是同一个对象。如下:
将打印出字条串,因为这两个对象是完全相同的。