• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > Asp.Net设计模式之单例模式详解

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

作者:青衫故人1 字体:[增加 减小] 来源:互联网 时间:2018-08-20

青衫故人1 通过本文主要向大家介绍了Asp.Net,设计模式,单例模式等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文为大家分享了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 值,这也就是单例模式的机制所在。

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

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Asp.net SignalR 应用并实现群聊功能 开源代码
  • asp.net动态更新
  • asp.net利用母版制作页脚效果
  • Asp.Net服务器发送HTTP标头后无法设置内容类型的问题解决
  • 使用asp.net mvc,boostrap及knockout.js开发微信自定义菜单编辑工具(推荐)
  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET Core发送邮件的方法
  • 在ASP.NET Core 中发送邮件的实现方法(必看篇)
  • ASP.NET MVC从视图传参到控制器的几种形式
  • Asp.net core WebApi 使用Swagger生成帮助页实例

相关文章

  • 2017-05-11c#实现根据网络IP显示地理位置功能示例
  • 2017-05-11asp.net分页功能实现
  • 2017-05-11ASP.NET操作Excel备忘录
  • 2017-05-11asp.net DropDownList 三级联动下拉菜单实现代码
  • 2017-05-11asp.net获取服务器基本信息的方法代码
  • 2017-05-11asp.net获取URL和IP地址的方法汇总
  • 2017-05-11asp.net运行提示未将对象引用设置到对象的实例错误解决方法
  • 2017-05-11asp.net与Discuz!NT整合集成实例教程
  • 2017-05-11扩展方法ToJSON() and ParseJSON()
  • 2017-05-11在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net利用NamingContainer属性获取GridView行号的方法
    • Asp.net获取客户端IP常见代码存在的伪造IP问题探讨
    • 使用母版页时内容页如何使用css和javascript
    • 在ASP.NET 2.0中操作数据之十四:使用FormView 的模板
    • asp.net 面试+笔试题目第1/2页
    • asp.net实现在非MVC中使用Razor模板引擎的方法
    • 在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数据
    • .net 中按.(点)无法智能提示的bug解决方案
    • Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)
    • Asp.Net 网站优化系列之数据库优化措施 使用主从库(全)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有