• 乐在其中设计模式(C#)


    介绍
    保证一个类仅有一个实例,并提供一个访问它的全局访问点。


    示例
    保证一个类仅有一个实例。

    Singleton
    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace Pattern.Singleton
    {
        /// <summary>
        /// 泛型实现单例模式
        /// </summary>
        /// <typeparam name="T">需要实现单例的类</typeparam>
        public class Singleton<T> where T : new()
        {
            /// <summary>
            /// 返回类的实例
            /// </summary>
            public static T Instance
            {
                get { return SingletonCreator.instance; }
            }
    
            class SingletonCreator
            {
                internal static readonly T instance = new T();
            }
        }
    }

    Test

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    
    using Pattern.Singleton;
    
    public partial class Singleton : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 使用单例模式,保证一个类仅有一个实例
            Response.Write(Singleton<Test>.Instance.Time);
            Response.Write("<br />");
            Response.Write(Singleton<Test>.Instance.Time);
            Response.Write("<br />");
    
            // 不用单例模式
            Test t = new Test();
            Response.Write(t.Time);
            Response.Write("<br />");
            Test t2 = new Test();
            Response.Write(t2.Time);
            Response.Write("<br />");
        }
    }
    
    public class Test
    {
        private DateTime _time;
    
        public Test()
        {
            System.Threading.Thread.Sleep(3000);
            _time = DateTime.Now;    
        }
    
        public string Time
        {
            get { return _time.ToString(); }
        }
    }

    运行结果
    2007-2-10 22:35:11
    2007-2-10 22:35:11
    2007-2-10 22:35:14
    2007-2-10 22:35:17

    [索引页]
    [源码下载]

    ***********************************************************************************************
    *【Author】:webabcd
    *【Date】:2013年08月18日
    *【URL】:http://www.cnblogs.com/webabcd/archive/2007/04/01/696021.html
    *【Notice】:
    *1、本文为原创技术文章,首发博客园个人站点。
    *2、请尊重原创的成果,转载和引用请注明作者及出处。
    *3、本文必须全文转载和引用,任何组织和个人未授权不能修改任何内容,并且未授权不可用于商业。
    *4、本声明为文章一部分,转载和引用必须包括在原文中。
    ***********************************************************************************************

  • 相关阅读:
    Thinkphp3.2.3如何加载自定义函数库
    mysql 字段引号那个像单引号的撇号用法
    php cli模式学习(PHP命令行模式)
    Django model 表与表的关系
    Django model 字段详解
    Django model 中的字段解释
    python系列-1 字符串操作
    nginx-匹配规则
    ansible系列3-pyYAML
    ansible系列2-常用命令
  • 原文地址:https://www.cnblogs.com/armyant/p/3265832.html
Copyright © 2020-2023  润新知