c#设计模式之单例模式的实现方式-创新互联
场景描述
创新互联是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,微信小程序开发,十多年建站对玻璃钢坐凳等多个行业,拥有丰富的网站维护经验。单例模式对于我们来说一点也不模式,是一个常见的名称,单例模式在程序中的实际效果就是:确保一个程序中只有一个实例,并提供一个全局访问点,节省系统资源
单例模式无论是在实际开发中还是在软件应用中比较常见,比如,windows系统的任务管理器、IIS的HttpApplication、实际项目中的日志组件等等
实现方式
单例模式为了实现一个实例,那么只有不把实例创建暴露出去,只通过类本身来创建实例,为了实现效果,需要定义一个私有构造函数
单例模式实现方式有:饿汉式、懒汉式、双重验证式、静态内部类
下面分别对每一种实现方式做一个简单的实例,以及其优缺点
饿汉式
////// 创建一个 Singleton 类(饿汉式) /// 这种方式比较常用,但容易产生垃圾对象。 ///优点:没有加锁,执行效率会提高。 ///缺点:类加载时就初始化,浪费内存。 ///它基于 classloder 机制避免了多线程的同步问题,不过,instance 在类装载时就实例化, ///虽然导致类装载的原因有很多种,在单例模式中大多数都是调用 getInstance 方法, ///但是也不能确定有其他的方式(或者其他的静态方法)导致类装载,这时候初始化 instance 显然没有达到 lazy loading 的效果。 /// public class SingleObject { //创建 SingleObject 的一个对象 private static SingleObject instance = new SingleObject(); //让构造函数为 private,这样该类就不会被实例化 private SingleObject() { Console.WriteLine("我被创建了.饿汉式"); } //获取唯一可用的对象 public static SingleObject GetInstance() { return instance; } public void ShowMessage() { Console.WriteLine("Hello World.饿汉式"); } }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页名称:c#设计模式之单例模式的实现方式-创新互联
文章起源:http://pwwzsj.com/article/ejpgi.html