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 }

    完。

  • 相关阅读:
    学习进度四
    每日进度二
    每日进度一
    学习进度三
    学习进度二
    安全性战术
    Linux 常用命令
    python测试框架之pytest
    Python 列表生成式和字典生成式
    使用Python在Windows 10上显示通知信息
  • 原文地址:https://www.cnblogs.com/yyzj/p/6605628.html
Copyright © 2011-2022 走看看