- 浏览: 78703 次
文章分类
- 全部博客 (48)
- AOP (0)
- ASP.NET (1)
- C# (0)
- Community Server (0)
- Database (0)
- Design Pattern (3)
- JAVA (1)
- JavaScript (1)
- Linux (1)
- O/R Mapping (0)
- OO (3)
- SQL Server (1)
- VB.NET (0)
- Visual Studio 2005 (2)
- Windows (2)
- WPF (0)
- XML/XSLT (0)
- 常用工具类 (0)
- 人生感悟 (0)
- 算法 (0)
- 转载 (5)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (3)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (15)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (2)
- [网站分类]4.其他技术区 (4)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (0)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (1)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (0)
最新评论
-
xjw1987524:
这个问题我是弄啦很久,我也试过反编译,不知道为什么就是不成功; ...
支持中文参数的 jspSmartUpload
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
模式分类
|
目的 | |||
创建型 |
结构型 |
行为型 | ||
范
围 |
类 |
工厂方法(Factory Method) |
适配器(类,Adapter) |
解释器(Interpreter) 模板方法(Template Method) |
对
象 |
抽象工厂(Abstract Factory) 生成器(Builder) 原型(Prototype) 单件(Singleton) |
适配器(对象,Adapter) 桥接(Bridge) 组成(Composite) 装饰(Decorator) 外观(Facade) 享元(Flyweight) 代理(Proxy) |
职责链(Chain of Responsibility) 命 令(Command) 迭代器(Iterator) 中介者(Mediator) 备忘录(Memento) 观察者(Observer) 状 态(State) 策 略(Strategy) 访问者(Visitor) |
动机(Motivation)
意图(Intent)
Singleton 模式实现
/// 单线程 Singleton 模式实现
/// </summary>
public class Singleton
{
private static Singleton instance;
private Singleton() {}//私有的构造器使得外部无法创建该类的实例
public static Singleton Instance
{
get
{
if ( instance == null )
{
instance = new Singletion();
}
return instance;
}
}
}
/**//// <summary>
/// 多线程 Singleton 模式实现
/// </summary>
public class Singleton
{
private static volatile Singleton instance = null;
private static object lockHelper = new Object();
private Singleton() {} //私有的构造器使得外部无法创建该类的实例
public static Singleton Instance
{
get
{
if ( instance == null )
{
lock ( lockHelper )
{
if ( instance == null )
{
instance = new Singletion();
}
}
}
return instance;
}
}
}
/// 多线程 Singleton 模式实现
/// </summary>
class Singleton
{
public static readonly Singletion Instance = new Singleton();
private Singleton() {}
}
/**///// 等同于:
/// <summary>
/// 多线程 Singleton 模式实现
/// </summary>
class Singleton
{
public static readonly Singletion Instance;
static Singleton()
{
Instance = new Singleton();
}
private Singleton() { }
}
/// 单线程 Singleton 模式实现
/// 支持参数化的构造器方式
/// </summary>
public class Singleton
{
public static readonly Singletion instance;
private Singleton(int x, int y)
{
this.x = x;
this.y = y;
}
public static Singleton GetInstance(int x, int y0
{
if ( instance == null )
{
instance = new Singleton(x, y);
}
else
{
instance.x = x;
instance.y = y;
}
return instance;
}
int x;
int y;
}
发表评论
-
获取某目录下的所有文件(包括子目录下文件)的数量(C#)
2005-11-04 17:27 3992以前写过一个通过计算目录遍历所有文件和子目录的方法来获得某目录 ... -
Visual Studio 2005 试用笔记
2005-11-06 21:36 936今天开始用上了 VS 2005 ... -
利用视图管理器高效编写 SQL SELECT 语句
2006-02-19 13:27 955献给初学者,老鸟别扔砖头 编写 ... -
将Web站点下的绝对路径转换为虚拟路径
2006-05-07 12:48 1209很经常使用到的一个功能,但在在网上却一直没有找到相关的解决方法 ... -
比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
2006-05-13 22:17 4044有时候我们需要从两个不同数组中提取出相同的部分 ... -
基于 .NET 2.0 System.Net.Mail namespace 的邮件发送组件
2006-05-17 13:11 1887一个基于 .NET 2.0 System.Net.Mail n ... -
从 CCS 1.1 升级到 CS 2.0 所遇到的问题和部分解决方法
2006-06-16 12:58 826整理了一下,记录在这 ... -
.NET Enum The Next Level
2006-08-20 17:15 1169声明:本文内容出自:http://www.codeprojec ... -
C# 中实现随机时间的获取
2006-09-07 17:31 1368原理其实非常简单,取出两个时间差的秒数,再在0到该秒数 ... -
NHibernate 实体类中重写 Equals() 和 GetHashCode()
2006-09-17 17:08 1548在正常的对象操作中,当两个对象都是通过 new ... -
初识 db4o
2006-10-25 21:41 942今天早上收到 IBM developerWork ... -
Spring.Net AOP 学习之旅: 使用 Throws Advice 处理异常
2006-10-30 21:12 4339写在前头:本文示例和部分文字来自《Sprin ... -
.NET 1.1 下不使用 System.Web.Mail.SmtpMail 发送邮件的其它选择
2006-12-22 20:35 1246最近工作原因需要维护 ASP.NET 1.1 的程 ... -
.NET 中的 委托与事件
2006-12-27 10:10 1932一、什么是委托 ...
相关推荐
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式) C#面向...
在C#编程中,面向对象设计模式是一种组织代码和解决常见设计问题的模板。Singleton模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源的唯一...
标题和描述均聚焦于"C#面向对象设计模式"之中的"Singleton单件(创建型模式)",这是一种在软件工程领域广泛运用的设计模式,其核心在于确保一个类只有一个实例,并提供一个全局访问点,以实现资源的有效管理和控制。...
C#视频-面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
李建忠面向对象设计模式视频精讲:Singleton 单件(创建型模式)
面向对象设计模式是软件开发中的重要工具,它们是经过时间考验的最佳实践,为解决特定问题提供了模板。在C#编程中,设计模式的应用能够提升代码的可读性、可维护性和可扩展性。本篇文章将深入探讨“Singleton”...
本文将深入探讨“C#面向对象设计模式纵横谈”视频教程及其源码,帮助开发者理解和掌握这些模式在实际项目中的应用。 首先,我们要理解什么是设计模式。设计模式是软件设计中常见问题的解决方案模板,它描述了在特定...
在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第2节:创建型...
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)
在C#编程中,设计模式的应用尤为广泛,其中"Singleton"(单例)模式是一种创建型设计模式,我们今天就来详细探讨一下。 Singleton模式的主要目的是控制类的实例化过程,确保一个类在整个应用程序运行期间只有一个...
创建型设计模式是面向对象设计模式的一种类型,主要关注对象的创建过程,旨在提供灵活、可扩展和易于管理的对象实例化机制。本文将深入探讨C#中的创建型模式,帮助开发者更好地理解和应用这些模式。 1. **单例模式...
### C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) #### 概述 在面向对象编程中,设计模式是一种被广泛接受的解决方案,用于解决常见的软件设计问题。其中,原型模式(Prototype Pattern)属于...
李建忠先生的“C#面向对象设计模式纵横谈”系列讲座,通过对不同设计模式的深入剖析,帮助开发者更好地理解和应用这些模式。在第25讲中,他集中对整个系列进行了一次全面的总结,让我们一起来回顾和探讨这些设计模式...
本系列课程"面向对象设计模式纵横谈"将深入探讨这些模式及其在C#中的应用。 首先,我们需要理解面向对象的基本概念,包括封装、继承和多态。封装是隐藏对象的属性和实现细节,只对外提供公共访问方式,以此提高安全...
本文将深入探讨C#中的一些主要面向对象设计模式,并结合面向对象设计原则进行分析。 首先,我们要理解面向对象设计的四大原则:单一职责原则(Single Responsibility Principle, SRP)、开放封闭原则(Open-Closed ...
本篇将深入探讨"Singleton"单件模式,它是创建型设计模式的一种,用于确保一个类只有一个实例,并提供一个全局访问点。 首先,让我们理解什么是Singleton模式。Singleton模式的核心思想是限制类的实例化,使得整个...
在编程领域,面向对象设计模式是一种经过验证的解决常见软件设计问题的方法,它们提供了一种在不同场景下重用代码的高效方式。本篇将详细探讨C#中的几个关键设计模式,包括创建型、结构型和行为型模式。 首先,我们...
- 《设计模式:可复用面向对象软件的基础》(GoF),这是设计模式领域的经典之作,详细介绍了23种设计模式及其应用场景。 - 《面向对象分析与设计》(Grady Booch),这本书提供了面向对象分析与设计的基本原则和...
本文将深入探讨C#中的面向对象特性,主要包括Singleton单例模式、Builder生成器模式以及Factory Method工厂方法模式。 **Singleton模式**是创建型设计模式之一,它的核心思想是确保一个类只有一个实例,并提供一个...