C# 设计模式之单例模式(懒汉模式、饿汉模式、静态内部类模式)
应用场景:在整个软件运行生命周期内,一个类只允许一次实例化,例如数据库连接池的连接对象创建;通过使用单例模式来避免反复创建连接对象,从而降低非必要性能浪费

1.Main 方法代码

 class Program{static void Main(string[] args){单例模式之懒汉模式-延迟加载方案LazySingleton instance = LazySingleton.getInstance();LazySingleton instance1 = LazySingleton.getInstance();Console.WriteLine(instance == instance1);单例模式之饿汉模式HungrySingleton instance2 = HungrySingleton.getInstance();HungrySingleton instance3 = HungrySingleton.getInstance();Console.WriteLine(instance2 == instance3);//单例模式之静态内部类模式InnerClassSignleton instance4 = InnerClassSignleton.getInstance();InnerClassSignleton instance5 = InnerClassSignleton.getInstance();Console.WriteLine(instance4 == instance5);Console.ReadKey();}}

2.各模式类

// 懒汉模式类class LazySingleton{private static readonly object locker = new object();private volatile static LazySingleton instance;//volatile 关键字,防止字节码执行阶段CLR或者CPU重排序执行private LazySingleton(){}public static LazySingleton getInstance(){if (instance == null){lock (locker){if (instance == null){instance = new LazySingleton();}}}return instance;}}//饿汉模式类class HungrySingleton{private static HungrySingleton instance = new HungrySingleton();private HungrySingleton() { }public static HungrySingleton getInstance(){return instance;}}//静态内部类class InnerClassSignleton{private static class InnerClassHolder{public static InnerClassSignleton instance = new InnerClassSignleton();}private InnerClassSignleton() {if (InnerClassHolder.instance != null) {throw new Exception("单例模式不允许多个实例");}}public static InnerClassSignleton getInstance(){return InnerClassHolder.instance;}}

C# 设计模式之单例模式(懒汉模式、饿汉模式、静态内部类模式)相关推荐

  1. 单例模式懒汉、饿汉和登记

    转载自  JAVA设计模式之单例模式 本文继续介绍23种设计模式系列之单例模式. 概念: java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记 ...

  2. 【C++】单例模式(懒汉、饿汉)

    1.什么是单例模式? 顾名思义,单例模式就是在这个单例类确保只有一个对象被创建.也就是说这个类只能实例化一个对象. 特征:1.单例类最多只能有一个实例: 2.单例类必须自己创建自己唯一的实例: 3.单 ...

  3. java 单例模式 懒汉和饿汉

    单线程下的单例模式 定义: 确保一个类只有一个实例,并提供一个全局访问点. 单例代码: package wfb.pattern;public class Singleton {private stat ...

  4. 单例模式——懒汉与饿汉

    前言:设计模式是在不断编程中前人所总结的"兵书",将可能面对的大部分编程需求归纳总结为固定的模式,而单例模式则是最常见的设计模式之一. 设计模式 设计模式(Design Patte ...

  5. Java多线程案例之单例模式(懒汉,饿汉,枚举)

    ⭐️前面的话⭐️ 本篇文章将介绍Java多线程中的几个典型案例之单例模式,所谓单例模式,就是一个类只有一个实例对象,本文将着重介绍在多线程的背景下,单例模式的简单实现.

  6. Java单例模式--------懒汉式和饿汉式

    Java单例模式--------懒汉式和饿汉式 单件模式用途: 单件模式属于工厂模式的特例,只是它不需要输入参数并且始终返回同一对象的引用. 单件模式能够保证某一类型对象在系统中的唯一性,即某类在系统 ...

  7. 【设计模式:单例模式】单例模式01:饿汉模式

    单例模式:饿汉模式 正文开始@Assassin 目录: 单例模式:饿汉模式 1. 什么是设计模式? 2. 单例设计模式: 2.1 什么是单例模式? 2.2 单例模式应用实例: 1. 什么是设计模式? ...

  8. 单例模式的原理/懒汉模式/饿汉模式以及不同版本的单例模式程序

    单例模式 单例模式定义 懒汉模式与饿汉模式 懒汉模式 饿汉模式 懒汉模式和饿汉模式的区别 懒汉模式的不同版本 版本一 版本二 版本三 版本四 单例模式定义 保证一个类仅有一个实例,并提供一个该实例的全 ...

  9. java单例设计模式懒汉_Java设计模式之单例设计模式(懒汉、饿汉)

    [toc] Java设计模式之单例设计模式(懒汉.饿汉) 相信面试过的初中级Java开发的朋友可能都有遇到过单例设计模式的笔试题吧,如果之前没有背下来或者不理解,可以看看下面这篇文章,应该足够应付笔试 ...

  10. 设计模式 懒汉和饿汉

    懒汉和饿汉模式主要涉及是一个问题, 就是这个对象是我送过去给你,还是你自己来拿. 差别: 饿汉模式下,初始化已经调用了构造方法,直接得到了对象. 懒汉模式下的初始化没有得到对象,因此需要调用方法得到. ...

最新文章

  1. hihocoder 1152 Lucky Substrings
  2. 《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想
  3. Linux nohup命令用法详解
  4. vivo手机解锁工具_屏幕指纹优势凸显,vivo持续研发致力打造全屏指纹解锁
  5. 四五月份:关键词是沟通、绘画和SQL
  6. 远程管理服务器的具体操作方法
  7. js输出100以内的质数_Python 计数质数
  8. server接收dtu透传代码_Swoole学习笔记二:初探server与client(Client同步)
  9. 电解槽行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  10. python实践项目(十一)
  11. 使用metamask发起交易的时候,交易卡在pending了怎么办?
  12. echars 南丁格尔图 构建与配置
  13. 怎么用js代码画一棵树,附带下载链接
  14. 在线AI日语视频音频翻译中文字幕
  15. Obsidian+SyncTrayzor打造个人文档云同步平台
  16. 系统调用是什么,你用过哪些系统调用
  17. LQR控制器——简单实现与仿真
  18. Elasticsearch: date时间数据格式踩过的坑
  19. 【网络】应用层-HTTP协议
  20. 杭州(含嘉兴,绍兴,金华,湖州,义乌)Uber优步司机奖励政策(1月25日~1月31日)...

热门文章

  1. 大数据揭示网友新年愿望“十大热词”
  2. 数据结构课程设计 - 超市商品管理系统
  3. Weibull Distribution韦布尔分布的深入详述(3)分析案例建模实践
  4. JDK和JRE的含义和作用
  5. 一文看懂“巨鲸”被盗2亿元数字货币始末,找回几无可能
  6. 最新单片机毕设100例(五)
  7. 最常见的客服系统功能
  8. 【LeetCode105和106】先序和中序构造二叉树(106是中后序构树)
  9. nginx下TCP负载均衡配置
  10. bee(github.com/beego/bee)源码分析