面试题2:实现Singleton模式
来源:互联网 发布:ipad windows 编辑:程序博客网 时间:2024/05/17 22:28
题目:设计一个类,我们只能生成该类的一个实例。
转载请注明出处:http://blog.csdn.net/lvsaixia/article/details/39583193
只能生成一个实例的类是实现Singleton(单例)模式的类型。由于设计模式在面向对象程序设计中起着举足轻重的作用,面试中经常会出现这样的面试题。
不好得解决方法一:只适用于单线程环境
public sealed class Singleton{private singleton(){}private static Singleton instance = null;public static Singleton Instance{get{if (instance == null)instance = new Singleton();return instance;}}}
不好的解法二:虽然在多线程环境中能工作但是工作效率不高
public sealed class Singleton{private singleton(){}private static readonly object syncObj = new object();private static Singleton instance = null;public static Singleton Instance{get{lock(syncObj){if (instance == null)instance = new Singleton();}return instance;}}}
public sealed class Singleton{private singleton(){}private static readonly object syncObj = new object();private static Singleton instance = null;public static Singleton Instance{get{if (instance == null)lock(syncObj){instance = new Singleton();}}return instance;}}
推荐的解法一:利用静态构造函数
public sealed class Singleton{private singleton(){}private static Singleton instance = new Singleton();public static Singleton Instance{get{return instance;}}}
推荐的解法二:实现按需创建实例
public sealed class Singleton{private singleton(){}public static Singleton Instance{get{return instance;}}class Nested{static Nested(){}insternal static readonly Singleton instance = new Singleton();}}
请阅读这篇博客。博主详细讲解了23种设计模式。
转载请注明出处:http://blog.csdn.net/lvsaixia/article/details/39583193
0 0
- 面试题2:实现Singleton模式
- 面试题2:实现singleton模式
- 面试题2:实现一个Singleton模式
- 面试题2:实现Singleton模式
- 面试题2:实现Singleton模式
- 【面试题2】实现Singleton模式
- 面试题2:实现Singleton模式
- 面试题2:实现Singleton模式
- 面试题2:实现Singleton模式-七种实现方法
- 面试题2:实现Singleton
- 剑指Offer:面试题2 实现Singleton模式
- 面试题2:C++实现Singleton单例模式
- 剑指offer 面试题2 Singleton模式 C++实现
- 剑指offer|面试题2:实现Singleton模式
- 【剑指offer Java】面试题2:实现Singleton模式
- 剑指offer-面试题2-实现singleton模式
- 剑指offer面试题2:实现Singleton模式
- 剑指Offer学习之面试题2 : 实现Singleton 模式
- shell浅谈之十函数
- Linux的五个查找命令分析
- 用Ant实现Java项目的自动构建和部署
- git pro
- Events In The CAB (Introduction To CAB/SCSF Part 12)
- 面试题2:实现Singleton模式
- 获取昨天的时间
- 如何把安全证书导入到java中的cacerts证书库
- 一致性哈希算法及其在分布式系统中的应用
- Introduction To UIExtensionSites (Introduction To The CAB/SCSF Part 13)
- css中中文字体(font-family)的英文名称
- Map和Reduce个数设置问题
- More On UIExtensionSites (Introduction To CAB/SCSF Part 14)
- BZOJ 1688: [Usaco2005 Open]Disease Manangement 疾病管理