Asp.Net设计模式之单例模式详解

本文为大家分享了Asp.Net设计模式之单例模式,供大家参考,具体内容如下

一、设计目的:让项目中只显示一个实例对象

二、设计步骤:

创建一个类;
构建类类型静态变量;
定义返回值类为单例类型的静态方法;
判断静态变量instance是否为空:如果为空,就创建实例,然后给单例类中的字段进行赋值;如果不为空:返回此变量(return instance;)
单例模式创建成功;

三、项目相关名词或知识点解释

此处类类型:如果当前类为SingleCase,则此静态变量类型也要为SingleCase类型,即在此处定义的静态变量的类型要和这个当前类的类型相同。

定义单例实例变量时,尽量都用instance(实例)来指代,方便以后自己和他人对代码的阅读。

静态变量在内存中只有一个,只占一份儿。

四、相关源码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SingleCaseModel00
{
 /// <summary>
 /// 1.创建这么一个类
 /// </summary>
 class SingleCase
 {
  //2.构建类类型静态变量
  //此处类类型:如果当前类为SingleCase,则次静态变量类型也要为SingleCase类型,
  //即在此处定义的静态变量的类型要和这个当前类的类型相同
  //定义单例实例变量时,尽量都用instance(实例)来指代,方便阅读
  //静态变量在内存中只有一个,只占一份儿
  public static SingleCase instance = null;
  //10.定义一个字段,用来进行测试
  public string name;
  //3.定义返回值类为单例类型的静态方法
  public static SingleCase getInstance(string n)
  {
   //4.判断静态变量instance是否为空
   if (instance == null)
   {
    //5.如果为空,就创建实例
    instance = new SingleCase();
    //6.给单例类中的字段进行赋值
    instance.name = n;
   }
   //7.返回此变量
   return instance;
  }
  //8.如果这个类中还有其他的字段,那么直接在下面写出来即可
  //如下:
  //public string Name;
  //public int Age;
 }
 class Program
 {
  static void Main(string[] args)
  {
   //9.调用上述单例类中方法,测试单例类
   SingleCase s1 = SingleCase.getInstance("我是第一次传过来的参数");
   SingleCase s2 = SingleCase.getInstance("我是第二次传过来的参数");
   Console.WriteLine(s1.name);
   Console.WriteLine(s2.name);
   Console.ReadKey();
  }
 }
}

五、结果展示

六、对结果的解释说明

两次输出的结果是一样的,这是因为当第一次传入参数的时候,instance 为空,执行上面的方法后,name的值就变成了“我是第一次传过来的参数”,当你第二次再次传入参数时,由于静态变量在内存中只有一个,只占一份儿,所以此时instance 已经不为空了,还会直接输出第一个参数是的instance 值,所以,不管你输入几次参数,输出的结果都会是第一次输出的那个instance 值,这也就是单例模式的机制所在。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jQuery 验证插件 Web前端设计模式(asp.net)

    设计目标:建立一个基于jQuery框架的通用Web验证插件... 设计要求:1.需要漂亮的css样式及小图标的润饰... 2.基于jQuery框架... 3.调用.net Web 服务来实现与数据库的异步交互... 解决方案:1.首先,我们来设计三个类,分别用来显示Web给用户的视觉感知.它们分别是 .msg_warning{font-family:Arial,Helvetica,sans-serif,simsun; background:#e7f7ff url(register/MsgWarn

  • ASP.NET的适配器设计模式(Adapter)应用详解

    前天有一网友问及有关设计模式的适配器模式(Adapter)时,说不太好理解.让Insus.NET能否举个简单的例子来说明一下.下面的动画是Insus.NET做出来的效果: 上面的演示,两个灯的规格一样,要求输入的电压为15伏. Light1是直接使用,而Light2是使用Adapter(电源适配器).因此Light1只能接收15伏的电压,小于15伏,会提示电压过低,如果超过了15伏,Light1肯定被烧坏. Light2使用了电源适配器,它接收15伏至220的电压,在这电压范围之内,电源适配器会

  • C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能

    本文实例讲述了C#设计模式之Template模板方法模式实现ASP.NET自定义控件 密码强度检测功能.分享给大家供大家参考,具体如下: 一.理论定义 模板方法模式 预先定义实现了一些基本属性和方法,需要重新计算的部分,通过子类去重写 或  增加新方法来实现. 二.应用举例 需求描述: ASP.NET自定义控件有很多通用的属性和事件, 通过继承System.Web.UI.WebControls.WebControl类,可以实现自定义控件. WebControl拥有控件基本的方法和事件,让我们定义

  • Asp.Net设计模式之单例模式详解

    本文为大家分享了Asp.Net设计模式之单例模式,供大家参考,具体内容如下 一.设计目的:让项目中只显示一个实例对象 二.设计步骤: 创建一个类: 构建类类型静态变量: 定义返回值类为单例类型的静态方法: 判断静态变量instance是否为空:如果为空,就创建实例,然后给单例类中的字段进行赋值:如果不为空:返回此变量(return instance;) 单例模式创建成功: 三.项目相关名词或知识点解释 此处类类型:如果当前类为SingleCase,则此静态变量类型也要为SingleCase类型,

  • JavaScript设计模式之单例模式详解

    最近项目不太忙,难得有时间看看书,平时挺喜欢js这门语言.也看过很多高级教程,觉得自己还是比较热衷于js的设计模式.这一次重温一下<JavaScript设计模式与开发实践>,开篇为单例模式. /** * pre 单例模式 * 定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 * 应用:单例模式是一种常用的模式,有一些对象我们往往只需要一个, * 比如线程池.全局缓存.浏览器中的 window 对象等. */ //--------------singleton-01----------

  • Java设计模式之单例模式详解

    单例模式是非常常见的设计模式,其含义也很简单,一个类给外部提供一个唯一的实例.下文所有的代码均在github 源码整个项目不仅仅有设计模式,还有其他JavaSE知识点,欢迎Star,Fork 单例模式的UML图 单例模式的关键点 通过上面的UML图,我们可以看出单例模式的特点如下: 1.构造器是私有的,不允许外部的类调用构造器 2.提供一个供外部访问的方法,该方法返回单例类的实例 如何实现单例模式 上面已经给出了单例模式的关键点,我们的实现只需要满足上面2点即可.但是正因为单例模式的实现方式比较

  • android开发设计模式之——单例模式详解

    单例模式是设计模式中最常见也最简单的一种设计模式,保证了在程序中只有一个实例存在并且能全局的访问到.比如在Android实际APP 开发中用到的 账号信息对象管理, 数据库对象(SQLiteOpenHelper)等都会用到单例模式.下面针对一些例子分析一下我们在开发过程中应用单例模式需要注意的点.  一.作用 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点 二.适用场景 1. 应用中某个实例对象需要频繁的被访问. 2. 应用中每次启动只会存在一个实例.如账号

  • 深入理解JavaScript系列(25):设计模式之单例模式详解

    介绍 从本章开始,我们会逐步介绍在JavaScript里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现.OK,正式开始. 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象.在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象. 正文 在JavaScript里,实现单例的方式有很多种,其中最简单的一个方

  • android设计模式之单例模式详解

    这是我们最常见的一类模式,对这一类模式有一个通用的特点就是: 封装创建的方式和过程. 这里所谓封装就是隐藏的意思,对对象的创建方法和过程不可见,或者是虚拟的过程. 隐藏创建方式,就是如单例,工厂方法,隐藏创建过程则是指builder,原型,至于抽象工厂,我认为他包含了以上两种. 我们想想一个对象的创建有哪些步骤? 1.创建什么东西?--接口定义 2.谁创建?        --决策类or帮助类 3.如何创建?     --how,创建过程 4.什么时候创建?    --创建时机的触发 由此可知,

  • C++设计模式之单例模式详解

    目录 单例模式:就是只有一个实例. 单例模式又分为两种基本的情形:饿汉式和懒汉式 如下是懒汉式单例类 小结: 继续看单例模式 总结 单例模式:就是只有一个实例. singleton pattern单例模式:确保某一个类在程序运行中只能生成一个实例,并提供一个访问它的全局访问点.这个类称为单例类.如一个工程中,数据库访问对象只有一个,电脑的鼠标只能连接一个,操作系统只能有一个窗口管理器等,这时可以考虑使用单例模式. 众所周知,c++中,类对象被创建时,编译系统为对象分配内存空间,并自动调用构造函数

  • Java中常用的设计模式之单例模式详解

    目录 注意 优点 缺点 使用场景 一.实现方式 二.实现方式 三.测试 总结 注意 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 优点 1.在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存). 2.避免对资源的多重占用(比如写文件操作). 缺点 1.没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化. 使用场景 1.要求生产唯一序列号. 2.WE

  • PHP单例模式详解及实例代码

    PHP单例模式详解 单例模式的概念 单例模式是指整个应用中某个类只有一个对象实例的设计模式.具体来说,作为对象的创建方式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统全局的提供这个实例.它不会创建实例副本,而是会向单例类内部存储的实例返回一个引用. 单例模式的特点 单例模式的主要特点是"三私一公": 需要一个保存类的唯一实例的私有静态成员变量 构造函数必须声明为私有的,防止外部程序new一个对象从而失去单例的意义 克隆函数必须声明为私有的,防止对象被克隆 必须提供一个访

  • Java开发中为什么要使用单例模式详解

    一.什么是单例模式? 单例设计模式(Singleton Design Pattern)理解起来非常简单.一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式. 二.实战案例一:处理资源访问冲突 我们先来看第一个例子.在这个例子中,我们自定义实现了一个往文件中打印日志的 Logger 类.具体的代码实现如下所示: public class Logger { private FileWriter writer; public Logger() {

随机推荐