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

设计模式C#描述——单例与多例模式

阅读更多
设计模式C#描述——单例与多例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。



单例模式有以下特点:

单例类只能有一个实例。

单例类必须自己创建自己的唯一实例。

单例类必须给所有其他对象提供这一实例。

一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承。



public class Singleton

{

private static Singleton m_instance = null;



private Singleton()

{

}

public static Singleton getInstance()

{

if(m_instance==null)

{

m_instance=new Singleton();

}

return m_instance;

}

}



所谓多例模式,实际上就是单例模式的自然推广,单例类一般情况下只可以有一个实例,但单例类也可以推广到允许有限个实例,这种模式就是多例模式。作为对象的创建模式,多例模式有以下特点:

多例类可以有多个实例。

多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。

多例类分为有上限多例类与无上限多例类。

一个有上限的多例类已经把实例的上限当作逻辑的一部分,并建造到了多例类的内部。如下:



public class Multiton

{

private static Multiton instance1=null;

private static Multiton instance2=null;



private Multiton()

{

}



public static Multiton getInstance(int whichOne)

{

if(whichOne==1)

{

if(instance1==null)

{

instance1=new Multiton ();

}

return instance1;

}

else

{

if(instance2==null)

{

instance2=new Multiton ();

}

return instance2;



}

}

}

多例类的实例数目不需要有上限,实例数目没有上限的多例模式就叫做无上限多例模式。由于没有上限的多例类对实例的数目是没有限制的,因此,虽然这种多例模式是单例模式的推广,但是这种多例类并不一定能够回到单例类。一般采用聚集管理所有的实例。 
 
分享到:
评论

相关推荐

    C#设计模式(1)——单例模式.pdf

    ### C#设计模式详解:单例模式 #### 引言 设计模式是在软件工程领域内被广泛采用的一种最佳实践,其目的在于提供通用解决方案以解决在软件设计过程中遇到的常见问题。其中,《Head First 设计模式》是一本广受好评...

    设计模式——单例模式

    单例模式是软件设计模式中的一种经典模式,它在许多实际场景中被广泛使用,尤其在需要控制类的实例只有一个的情况下。单例模式确保无论在程序的任何地方,只要通过特定方式请求该类的实例,始终只会返回同一个对象。...

    c#代码介绍23种设计模式-01单例模式(附代码)

    c#代码介绍设计模式设计模式_单例模式 1)为什么会有单例模式 从单例模式的定义中我们可以看出——单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能有一个任务管理器 2)...

    C#设计模式–单例模式

    首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)  二、单例模式的介绍  说到单例模式,大家第一反应应该是——什么是单例模式?,从“单例”字面意思上理解为——一个类只有...

    c#单例模式(Singleton)的6种实现

    如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的——单例模式(Singleton)。  使用频率高 单件模式(Singleton...

    c#工厂模式——简单工厂,抽象工厂,单件模式实例

    在软件设计模式中,工厂模式是一种非常常见的创建型模式,它提供了一种创建对象的最佳方式。C#中的工厂模式分为简单工厂、抽象工厂和单例...理解并熟练运用这些设计模式,对于提升C#软件开发的专业性和效率至关重要。

    设计模式——刘伟

    刘伟先生的讲解可能会涵盖这些设计模式的优缺点、适用场景、实现方式以及与其他设计模式的对比。理解并熟练运用这些设计模式,能够帮助开发者编写出更高质量、更具可维护性的代码。学习设计模式不仅可以提升个人技能...

    《设计模式--基于C#的工程化实现及扩展》.(王翔)_《0528》.rar

    《设计模式--基于C#的工程化实现及扩展》是一本深入探讨软件设计模式的书籍,作者王翔通过C#语言来阐述各种设计模式的工程化应用和拓展。设计模式是软件开发中的一种最佳实践,它总结了在特定场景下解决常见问题的...

    深入浅出设计模式(中文版电子版)

    3.2.3C#实例——多文档系统 37 3.2.4Java实例——扩展了的手机工厂 41 3.2.5优势和缺陷 44 3.2.6应用情景 44 3.3AbstractFactoryPattern(抽象工厂模式) 45 3.3.1定义 45 3.3.2现实例子——扩展了的兵工厂 48...

    GOF设计模式C#加强版

    ### GOF设计模式C#加强版 #### 一、设计模式概述 设计模式是面向对象软件设计中一系列已知问题的有效解决方案集。它不仅有助于解决软件设计中的常见挑战,还能促进代码的可读性和可维护性。设计模式的核心在于描述...

    举例讲解C#编程中对设计模式中的单例模式的运用

    单例模式的介绍 说到单例模式,大家第一反应应该就是——什么是单例模式?...从单例模式的定义中我们可以看出——单例模式的使用自然是当我们的系统中某个对象只需要一个实例的情况,例如:操作系统中只能

    设计模式 C#的工程化实现及扩展 书及代码

    微软示例数据库脚本可能用于配合某些设计模式的实现,例如数据访问层的设计,而设计模式——基于C#的工程化实现及扩展_示例说明.txt则会详细解释这些示例代码的工作原理和设计思路。 通过学习和实践这些设计模式,...

    这可能是最全的单例模式了

    设计模式之——单例模式单例的几种实现1. 懒汉单例模式2. synchronized 修饰的懒汉单例模式3. 双重检查锁定的单例模式4. 静态内部类实现单例模式5. 饿汉实现单例模式6. 饿汉变种实现单例模式7. 枚举实现单例模式...

    设计模式源码.zip

    最后,"设计模式——基于C#的工程化实现及扩展_示例说明.txt"文件提供了对源码的解释和应用场景的描述,这对于初学者来说是极其宝贵的资源。它可以帮助你理解每个模式的意图、适用场景以及如何在C#代码中正确地引入...

    很好的编程资料——C#设计模式

    本资料包"很好的编程资料——C#设计模式"包含了23种经典的设计模式,每种模式都有对应的C#实现,是C#开发者学习和应用设计模式的宝贵资源。 1. **单例模式**:保证一个类只有一个实例,并提供一个全局访问点。在C#...

    GOF之23种设计模式的C#实现:DesignPattern.zip

    "GOF之23种设计模式"是由四名作者——Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides(通常称为Gang of Four,简称GOF)在他们的著作《设计模式:可复用面向对象软件的基础》中提出的。这些模式为创建可...

    C#范例——研究生信息系统,提供详细的代码,控件,适合C#初学者借鉴!

    8. **设计模式**:在系统设计中,开发者可能会用到一些常见的设计模式,如单例模式(Singleton)、工厂模式(Factory)或观察者模式(Observer),提升代码的复用性和扩展性。 9. **版本控制**:作为一个项目,...

    C# 23种设计模式(精简版)

    让我们详细探讨一下其中的一种创建型模式——单例模式。 单例模式是一种限制类的实例只能被创建一次的设计模式,确保在整个应用程序中,所有对该类的引用都指向同一个实例。这种模式通常用于控制共享资源,例如...

    C#23种设计模式_示例源代码及PDF

    单例模式: 而且自行实例化并向整个系统提供这个实 单例模式 单例模式确保某一个类只有一个实例, 例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。 结构型模式 6、ADAPTER —在朋友聚会上碰到...

Global site tag (gtag.js) - Google Analytics