zoukankan      html  css  js  c++  java
  • 单例和单态

    单例:只存在唯一的一个实例。

     1 /// <summary>
     2 /// 单例模式。
     3 /// </summary>
     4 public class Singleton
     5 {
     6     // 该字段负责存储 Singleton 的唯一实例。
     7     private static Singleton s_singleton = null;
     8 
     9     /// <summary>
    10     /// 私有构造器,不允许其它类调用。
    11     /// </summary>
    12     private Singleton()
    13     {
    14     }
    15 
    16     /// <summary>
    17     /// 获取 <see cref="Singleton"/> 的新实例。
    18     /// </summary>
    19     /// <returns><see cref="Singleton"/> 的新实例。</returns>
    20     public static Singleton GetInstance()
    21     {
    22         if (s_singleton != null) return s_singleton;
    23 
    24         Singleton tmp = new Singleton();
    25         Interlocked.CompareExchange(ref s_singleton, tmp, null);
    26         return s_singleton;
    27     }
    28 }

    单态:可以有多个实例,但它们共享相同的状态。

     1 /// <summary>
     2 /// 单态模式。
     3 /// </summary>
     4 public class Monostate
     5 {
     6     // 该类的所有实例,共享这个静态字段的值。
     7     private static Int32 s_state = 0;
     8 
     9     /// <summary>
    10     /// 获取状态信息。
    11     /// </summary>
    12     /// <returns>状态信息。</returns>
    13     public Int32 GetState()
    14     {
    15         // 这里可以处理其它事情。
    16         return (s_state + 5);
    17     }
    18 }

    完。

  • 相关阅读:
    java算法--循环队列
    java算法--普通队列
    java算法--稀疏数组
    HelloWorld
    css
    自定义事件并且主动触发
    数组字符串操作
    进阶路上有你我-相互相持篇之ES6里箭头函数里的this指向问题
    关于一道面试题
    异步函数回调
  • 原文地址:https://www.cnblogs.com/yyzj/p/6605628.html
Copyright © 2011-2022 走看看