当前位置: 首页 > news >正文

网络会议网站如果做淘宝网站

网络会议网站,如果做淘宝网站,网站建设 模板网站,wordpress主题删不掉C#设计模式学习笔记-单例模式 最近在学设计模式#xff0c;学到创建型模式的时候#xff0c;碰到单例模式#xff08;或叫单件模式#xff09;#xff0c;现在整理一下笔记。 在《Design Patterns#xff1a;Elements of Resuable Object-Oriented Software》中的定义是学到创建型模式的时候碰到单例模式或叫单件模式现在整理一下笔记。   在《Design PatternsElements of Resuable Object-Oriented Software》中的定义是Ensure a class only has one instanceand provide a global point of access to。它的主要特点不是根据客户程序调用生成一个新的实例而是控制某个类型的实例数量-唯一一个。《设计模式-基于C#的工程化实现及扩展》王翔。也就是说单例模式就是保证在整个应用程序的生命周期中在任何时刻被指定的类只有一个实例并为客户程序提供一个获取该实例的全局访问点。   一、经典模式 public class Singleton{ private static Singleton instance; private Singleton() { } public static Singleton GetInstance() { if(instancenull) { instancenew Singleton(); } return instance; }}   解析如下   1首先该Singleton的构造函数必须是私有的以保证客户程序不会通过new操作产生一个实例达到实现单例的目的   2因为静态变量的生命周期跟整个应用程序的生命周期是一样的所以可以定义一个私有的静态全局变量instance来保存该类的唯一实例   3必须提供一个全局函数访问获得该实例并且在该函数提供控制实例数量的功能即通过if语句判断instance是否已被实例化如果没有则可以同new创建一个实例否则直接向客户返回一个实例。   在这种经典模式下没有考虑线程并发获取实例问题即可能出现两个线程同时获取instance实例且此时其为null时就会出现两个线程分别创建了instance违反了单例规则。因此需对上面代码修改。   二、多线程下的单例模式   1、Lazy模式 public class Singleton{ private static Singleton instance; private static object _locknew object(); private Singleton() { } public static Singleton GetInstance() { if(instancenull) { lock(_lock) { if(instancenull) { instancenew Singleton(); } } } return instance; }}   上述代码使用了双重锁方式较好地解决了多线程下的单例模式实现。先看内层的if语句块使用这个语句块时先进行加锁操作保证只有一个线程可以访问该语句块进而保证只创建了一个实例。再看外层的if语句块这使得每个线程欲获取实例时不必每次都得加锁因为只有实例为空时即需要创建一个实例才需加锁创建若果已存在一个实例就直接返回该实例节省了性能开销。   2、饿汉模式   这种模式的特点是自己主动实例。 public sealed class Singleton{ private static readonly Singleton instancenew Singleton(); private Singleton() { } public static Singleton GetInstance() { return instance; }}   上面使用的readonly关键可以跟static一起使用用于指定该常量是类别级的它的初始化交由静态构造函数实现并可以在运行时编译。在这种模式下无需自己解决线程安全性问题CLR会给我们解决。由此可以看到这个类被加载时会自动实例化这个类而不用在第一次调用GetInstance()后才实例化出唯一的单例对象。 http://www.cnblogs.com/xun126/archive/2011/03/09/1970807.html转载于:https://www.cnblogs.com/chengjun/p/4955867.html
http://wiki.neutronadmin.com/news/240183/

相关文章:

  • 做行业网站广告能赚多少钱网页设计作品我的家乡
  • 帝国cms做网站去哪里做网站安全等级保护级别
  • 懒人手机网站模板seo网络优化前景怎么样
  • 银川网站设计建设wordpress文章id重新排序
  • 怎样做浏览的网站不被发现wordpress没有插件
  • 朝青板块网站建设wordpress做外贸
  • 响应式网站的几种尺寸服务器网络配置
  • 互联网网站建设新闻亚马逊aws永久免费服务器
  • 网站开发的分录怎么做天津百度推广开户
  • 网站开发工作怎样网页设计空格代码快捷键
  • 有哪些网站程序国内设计网站公司网站
  • 网站建设需要的项目wordpress添加关键字
  • 自助建站系统网站建设开发衡水网站制作多少钱
  • 金融网站建设方案ppt进入深圳市住房和建设局网站
  • 设计广告网站广发证券 网站谁做的
  • 恩平国有建设用地使用权拍卖网站服务器运维
  • 网站开发过程中出现的问题马鞍山天立建设网站
  • 网站前端做出来后台怎么做怀化二手车网站
  • 安卓手机做网站服务器免费建立小程序网站
  • 石家庄网站推广招聘网页版传奇游戏怎么制作
  • 自主网站企业网站建设开始起步文章
  • 建设工程质量安全监督站官方网站哪里有制作网站服务
  • 泰安集团网站建设百度关键词热度查询工具
  • 网站开发所需要的语言网站安全等级评审在哪里做
  • 山东大学网站设计与建设1m带宽做网站怎么样
  • access做网站数据方法188建站系统源码
  • 有没有免费的网站服务器国内精自品线一区91制片
  • 网站开发学什么语言好wordpress 应用店商
  • 广州网站建设系统十大免费推广平台
  • 做网站找公司怎么找有没有做任务的网站吗