zoukankan      html  css  js  c++  java
  • 设计模式学习总结(四)单例模式

       单例模式即一个类只能有一个实例,并且需该类自动提供该实例。

      一、示例展示:

      通过学习及总结,以下是我做的两个单例模式的示例:

      懒汉式的单例模式:

    using System;
    
    namespace DesignModel
    {
        class Program
        {
            static void Main(string[] args)
            {
                Singleton sl1 = Singleton.GetInstance();
                Singleton sl2 = Singleton.GetInstance();
                if (sl1 == sl2)
                {
                    Console.WriteLine("The two instance is identical!");
                }
                Console.ReadLine();
            }
        }
    
        class Singleton
        {
            private static Singleton Instance;
            private Singleton()
            {
    
            }
    
            public static Singleton GetInstance()
            {
                if (Instance == null)
                {
                    Instance= new Singleton();
                }
                return Instance;
            }
        }
    }
    View Code

          饿汉式的单例模式:

    using System;
    
    namespace DesignModel
    {
        class Program
        {
            static void Main(string[] args)
            {
                Singleton sl1 = Singleton.GetInstance();
                Singleton sl2 = Singleton.GetInstance();
                if (sl1 == sl2)
                {
                    Console.WriteLine("The two instance is identical!");
                }
                Console.ReadLine();
            }
        }
    
        class Singleton
        {
            private static Singleton Instance = new Singleton();
            private Singleton()
            {
    
            }
    
            public static Singleton GetInstance()
            {
                return Instance;
            }
        }
    }
    View Code

      懒汉式的单例模式与饿汉式的单例模式的主要区别:懒汉式的单例模式在每次加载自己时就会进行实例化,而汉式的单例模式则会去进行判断,如果当前实例为空,则才会进行实例化;

      二、单例模式设计理念:

      私有的构造函数,以及可供外部访问的静态方法。

      三、角色及关系:

      

  • 相关阅读:
    HTTP请求返回状态码详解
    C#-MVC开发微信应用(1)--开始使用微信接口
    码源中国.gitignore忽略文件配置
    Windows Server 2008 R2 下配置证书服务器和HTTPS方式访问网站
    架设证书服务器 及 让IIS启用HTTPS服务
    css设置图片的透明度
    页面通过打开设备判断跳转的链接页面
    sql语句修改字段长度
    【C#】时间戳转换
    C# Linq 交集、并集、差集、去重
  • 原文地址:https://www.cnblogs.com/sccd/p/6577043.html
Copyright © 2011-2022 走看看