`
yyw84
  • 浏览: 79004 次
社区版块
存档分类
最新评论

C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记

阅读更多
(很喜欢李建忠老师的这个讲座,可惜暂时没更多的了,继续关注 MSDN WebCast 网络广播

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 模式实现

/**//// <summary>
/// 单线程 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;
        }

    }

}


/**//// <summary>
/// 多线程 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() { }
}

 
/**//// <summary>
/// 单线程 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#面向对象设计模式纵横谈(视频与源码)

    C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) C#面向对象设计模式纵横谈(3):Abstract Factory 抽象工厂模式(创建型模式) C#面向对象设计模式纵横谈(4):Builder 生成器模式(创建型模式) C#面向...

    C#面向对象设计模式纵横谈-1.Singleton 单件(创建型模式)

    在C#编程中,面向对象设计模式是一种组织代码和解决常见设计问题的模板。Singleton模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取这个唯一的实例。这种模式在需要控制资源的唯一...

    C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)

    标题和描述均聚焦于"C#面向对象设计模式"之中的"Singleton单件(创建型模式)",这是一种在软件工程领域广泛运用的设计模式,其核心在于确保一个类只有一个实例,并提供一个全局访问点,以实现资源的有效管理和控制。...

    C#视频-面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)

    C#视频-面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)

    面向对象设计模式:Singleton 单件(创建型模式)

    李建忠面向对象设计模式视频精讲:Singleton 单件(创建型模式)

    C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) (Level 300)

    面向对象设计模式是软件开发中的重要工具,它们是经过时间考验的最佳实践,为解决特定问题提供了模板。在C#编程中,设计模式的应用能够提升代码的可读性、可维护性和可扩展性。本篇文章将深入探讨“Singleton”...

    C#面向对象设计模式纵横谈视频以及源码

    本文将深入探讨“C#面向对象设计模式纵横谈”视频教程及其源码,帮助开发者理解和掌握这些模式在实际项目中的应用。 首先,我们要理解什么是设计模式。设计模式是软件设计中常见问题的解决方案模板,它描述了在特定...

    C#面向对象设计模式纵横谈\2 创建型模式Singleton单件模式.zip

    在这里与各位分享本人从网络上下载的C#面向对象设计模式纵横谈系列视频,共有25节,除了第一节需要各位贡献一点资源分以作为对本人上传资源的回馈,后面的其他资源均不需要资源分。敬请期待。 这是第2节:创建型...

    C#面向对象设计模式纵横谈(2)

    C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式)

    C#面向对象设计模式纵横谈(2)Singleton 单件(创建型模式)

    在C#编程中,设计模式的应用尤为广泛,其中"Singleton"(单例)模式是一种创建型设计模式,我们今天就来详细探讨一下。 Singleton模式的主要目的是控制类的实例化过程,确保一个类在整个应用程序运行期间只有一个...

    C#面向对象设计模式纵横谈-创建型模式

    创建型设计模式是面向对象设计模式的一种类型,主要关注对象的创建过程,旨在提供灵活、可扩展和易于管理的对象实例化机制。本文将深入探讨C#中的创建型模式,帮助开发者更好地理解和应用这些模式。 1. **单例模式...

    C#面向对象设计模式纵横谈(

    ### C#面向对象设计模式纵横谈(6):Prototype 原型模式(创建型模式) #### 概述 在面向对象编程中,设计模式是一种被广泛接受的解决方案,用于解决常见的软件设计问题。其中,原型模式(Prototype Pattern)属于...

    李建忠 C#面向对象设计模式纵横谈(25):设计模式总结

    李建忠先生的“C#面向对象设计模式纵横谈”系列讲座,通过对不同设计模式的深入剖析,帮助开发者更好地理解和应用这些模式。在第25讲中,他集中对整个系列进行了一次全面的总结,让我们一起来回顾和探讨这些设计模式...

    C#面向对象设计模式纵横谈系列课程1

    本系列课程"面向对象设计模式纵横谈"将深入探讨这些模式及其在C#中的应用。 首先,我们需要理解面向对象的基本概念,包括封装、继承和多态。封装是隐藏对象的属性和实现细节,只对外提供公共访问方式,以此提高安全...

    C#面向对象设计模式纵横谈(1):面向对象设计模式与原则 (Level 300)

    本文将深入探讨C#中的一些主要面向对象设计模式,并结合面向对象设计原则进行分析。 首先,我们要理解面向对象设计的四大原则:单一职责原则(Single Responsibility Principle, SRP)、开放封闭原则(Open-Closed ...

    C#面向对象设计模式纵横谈2

    本篇将深入探讨"Singleton"单件模式,它是创建型设计模式的一种,用于确保一个类只有一个实例,并提供一个全局访问点。 首先,让我们理解什么是Singleton模式。Singleton模式的核心思想是限制类的实例化,使得整个...

    c#面向对象设计模式纵横谈

    在编程领域,面向对象设计模式是一种经过验证的解决常见软件设计问题的方法,它们提供了一种在不同场景下重用代码的高效方式。本篇将详细探讨C#中的几个关键设计模式,包括创建型、结构型和行为型模式。 首先,我们...

    C#面向对象设计模式纵横谈(25):设计模式总结

    - 《设计模式:可复用面向对象软件的基础》(GoF),这是设计模式领域的经典之作,详细介绍了23种设计模式及其应用场景。 - 《面向对象分析与设计》(Grady Booch),这本书提供了面向对象分析与设计的基本原则和...

    c#面向对象纵横谈(全)

    本文将深入探讨C#中的面向对象特性,主要包括Singleton单例模式、Builder生成器模式以及Factory Method工厂方法模式。 **Singleton模式**是创建型设计模式之一,它的核心思想是确保一个类只有一个实例,并提供一个...

Global site tag (gtag.js) - Google Analytics