美文网首页
c# 单例模式 饥饿模式和懒加载模式

c# 单例模式 饥饿模式和懒加载模式

作者: 一千零一本好书 | 来源:发表于2020-09-28 14:03 被阅读0次


1:饥饿模式

public class Class1 { public readonly static Class1 c1 = new Class1();//直接创建一个 //构造函数私有化 禁止其他地方创建实例 private Class1() { } //对外提供一个方法来返回 public static Class1 GetSign() { return c1; } }

2:懒加载

public class Class2 { private static Class2 c2 = null; private readonly static object objLock = new object(); private Class2() { } public static Class2 GetSign() { if (c2 == null)//提高性能 是null的时候才加锁 { lock (objLock)//加锁 为了 线程安全 { if (c2 == null) { c2 = new Class2(); } } } return c2; } }

3:懒加载进阶

参考:https://www.cnblogs.com/leolion/p/10241822.html

public sealed class Class3 { //构造函数私有化 //说实话 这种我还不太懂,可以去看看原文 private Class3() { } public static Class3 c3 { get { return GetSign.c3; } } private class GetSign { // 显式静态构造告诉C#编译器 // 未标记类型BeforeFieldInit static GetSign() { } internal static readonly Class3 c3 = new Class3(); } }

4:Lazy

public sealed class Class4 { //延迟初始化 // 初始化 System.Lazy`1 类的新实例。 当延迟初始化发生时,将使用指定的初始化函数和初始化模式。 //第二个参数 表示 线程安全为true //哈哈,我也第一次晓得这个方式。新奇 private static readonly Lazy<Class4> lazyC4 = new Lazy<Class4>(() => new Class4(),true); public static Class4 c4 { get { return lazyC4.Value; } } private Class4() { } }

相关文章

  • 2020-07-02 - C#单例

    C#单例模式 使用懒加载模式创建, 写法比较优雅.

  • c# 单例模式 饥饿模式和懒加载模式

    1:饥饿模式 public class Class1 { public readonly st...

  • Java线程安全的单例模式

    简单的单例模式(饿汉模式) 程序代码加载时,单例即初始化,加重系统负载.未实现懒加载 懒加载的单例模式 双锁延迟加...

  • 设计模式

    《C#设计模式》 《C#设计模式》-设计模式概述 《C#设计模式》-面向对象设计原则 《C#设计模式》-单例模式 ...

  • 设计模式--单例模式

    单例模式概述 单例模式实现方式 为什么要使用单例模式 单例模式实现方式 饿汉式 类加载后就会将对象加载到内存中,保...

  • 单例模式的八种写法比较

    单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到饿汉式和懒...

  • 单例模式

    单例,全局只有一个实例 单例模式可以分为懒汉式和饿汉式: 懒汉式单例模式:在类加载时不初始化。 饿汉式单例模式:在...

  • 面试题汇总(设计模式)

    单例模式 参考:漫画:什么是单例模式?单例模式的七种写法 1. 饿汉式 类加载较慢,但获取对象的速度快 基于类加载...

  • 2022年3月Android面试题,包含vipkid,新氧,国美

    内存泄露 Looper,ThreadLocal 加载长图 jvm 类加载 单例模式,工厂模式,建造者模式 url输...

  • 设计模式

    常用的设计模式:单例模式,工厂模式,观察者模式,代理模式,其他的我使用不多。单例模式最常见也最简单分为几种实现:懒...

网友评论

      本文标题:c# 单例模式 饥饿模式和懒加载模式

      本文链接:https://www.haomeiwen.com/subject/rguduktx.html