惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
J
Java Code Geeks
有赞技术团队
有赞技术团队
GbyAI
GbyAI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家
G
Google Developers Blog
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
腾讯CDC
V
Visual Studio Blog
博客园 - 【当耐特】
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
L
LangChain Blog

博客园 - star163

开源项目管理工具 [转]项目管理和版本跟踪——Redmine和SVN的结合 [转]在项目管理工具Redmine中使用SubVersion进行版本管理 [转]非常全的javascript控制MediaPlayer与realplayer对象 [转]让VS2008支持JQUERY的javascript语法提示 [转]强烈推荐:jQuery-240多个jQuery插件 [转]详谈基于JSON的高级AJAX开发技术 使用JavaScript中的ActiveXObject填充并设置Excel格式 - star163 - 博客园 [转]ASP.NET MVC Framework 尝鲜小试 - star163 MVC资源 [转]ASP.NET MVC 框架路线图更新 [转]用WMI实现Windows系统自动管理(多图) 优秀开源资源 UPDATE实现多表更新 [转]50种方法巧妙优化SQL Server数据库 [转]使用面向对象的技术创建高级 Web 应用程序 NET常用设计模式——代理(Proxy)模式 .NET常用设计模式——迭代器模式 NET常用设计模式——组合模式
NET常用设计模式——单件模式
star163 · 2007-12-23 · via 博客园 - star163


单件模式

  • 整个系统中对象是唯一的
  • 也可以有固定数目个
    如:对象池、portal中的配置对象 当前httpcontext appdomain

应用实列(一)

using System;
namespace CSDesingPattern
{
    
class Singleton
    {
        
private static Singleton mInstance;
        
private int x = 0;//私有构造函数
        private Singleton() { }//实现单件实例
        public static Singleton GetObject()
        {
            
if (mInstance == null)
                mInstance 
= new Singleton();
            
return mInstance;
        }
public void SetX(int newVal)
        {
            x 
= newVal;
        }
public int GetX()
        {
            
return x;
        }
static void Main(string[] args)
        {
int val;
            Singleton s1 
= Singleton.GetObject();
            Singleton s2 
= Singleton.GetObject();
            Console.WriteLine(
"将Singleton对象中的X设置为10");
            s1.SetX(
10);
            val 
= s2.GetX();
            Console.WriteLine(
"使用第二个Singleton变量读取X的值 x={0}", val);
        }
    }
}