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

安徽省住房和城乡建设厅网站查询网站建设与应用

安徽省住房和城乡建设厅网站查询,网站建设与应用,在线代理网页浏览,镇江关键字优化品牌简介 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就非常适合。 优点 单例模式可以保证在全局…

简介

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就非常适合。

优点

  • 单例模式可以保证在全局内存中只有一个实例,节省了系统资源。

  • 单例模式可以避免对资源的多重占用,例如一个写文件操作,为了保证数据不会发生冲突,必须确保只有一个实例在对它进行操作。

  • 单例模式可以提供一个全局访问点,对于一些需要频繁进行实例化和销毁的对象,单例模式可以提高系统性能。

缺点

  • 单例模式一般没有接口,扩展困难,若要扩展,除非修改原代码。

  • 单例模式对测试的支持不友好,因为它们是静态的,所以很难进行单元测试。

  • 如果在应用程序的不同模块中过度使用单例,可能会导致代码的耦合度高,难以调试和维护。

  • 单例模式可能会导致“单例依赖”情况,如果一个类依赖于单例服务,那么这个类在测试时可能很难被模拟或替换。

实现

  • 懒汉式:单例实例在第一次被使用时构建,延迟初始化(推荐使用)。
/// <summary>
/// 单例模式-懒汉式
/// </summary>
public class Singleton
{/// <summary>/// 可以把需要处理的逻辑放在构造函数中/// </summary>private Singleton(){}private static Singleton _instance = null;private static readonly object _lock = new object();public static Singleton GetInstance(){if (_instance == null)//为了提升性能,对象初始化之后能够并发{lock (_lock)//保证任意时刻只有一个线程可以进入{if (_instance == null)//这里用于第一次初始化时的并发判断,防止重复初始化{_instance = new Singleton();}}}return _instance;}}
  • 饿汉式1:单例实例在类装载时通过静态构造函数构建,急切初始化。(预先加载法)
/// <summary>
/// 单例模式-饿汉式
/// </summary>
public class SingletonSecond
{/// <summary>/// 可以把需要处理的逻辑放在构造函数中/// </summary>private SingletonSecond(){}private static SingletonSecond _instance = null;/// <summary>/// 由CLR调用,且只调用一次,会在程序第一次使用该类型之前/// </summary>static SingletonSecond(){_instance = new SingletonSecond();}public static SingletonSecond GetInstance(){return _instance;}
}
  • 饿汉式1:单例实例在类装载时通过静态字段构建,急切初始化。(预先加载法)
/// <summary>
/// 单例模式-饿汉式
/// </summary>
public class SingletonThird
{/// <summary>/// 可以把需要处理的逻辑放在构造函数中/// </summary>private SingletonThird(){}/// <summary>/// 静态字段也是由CLR保障的,在程序第一次使用该类型之前,完成初始化,且只初始化一次/// </summary>private static SingletonThird _instance = new SingletonThird();public static SingletonThird GetInstance(){return _instance;}
}

总结

懒汉式优点:

避免了饿汉式的那种在没有用到的情况下创建实例,资源利用率高,不执行GetInstance()就不会被实例,可以执行该类的其他静态方法。

懒汉式缺点:

多线程使用时一定要注意加锁+双if判断,第一次加载时不够快,多线程使用不必要的同步开销大。
 

饿汉式优点:

不存在多线程并发的问题,线程安全,在类加载的同时已经创建好一个静态对象,调用时反应速度快 。

饿汉式缺点:

 资源效率不高,可能GetInstance()永远不会执行到,但执行该类的其他静态方法,那么这个实例仍然初始化 。

 

http://www.dtcms.com/wzjs/566032.html

相关文章:

  • 全包家装原创装修网站想要一个免费的网站
  • 江宁招网站建设58新媒体平台
  • 网站怎样秒收录wordpress上传大文件
  • 深圳网站设计公司发展历程用html编写淘宝网站怎么做
  • 网站开发技术方法与路线wordpress发邮件悬浮窗口
  • 深圳建设厅网站如何做网络营销推广文
  • 架设网站多少钱化妆培训
  • 网站没有做的关键词有排名注册城乡规划师考试
  • 自助建站系统免费加盟那个网站可以做微课
  • 柳市网站制作做网络推广的团队
  • 网站 自定义表单织梦模板修改网站颜色
  • 网站建设常用的方法互联网推广引流公司
  • 外贸网站cms系统东阳网站建设dyfwzx
  • 网站制作公司排名前十酒店如何进行网络营销
  • 哈尔滨网站建设哪个好制作app下载
  • 曲靖网站建设0doit互联网app推广工作怎么样
  • 网站一键制作麻阳建设局网站
  • 网站制作商城国内搜索引擎排行榜
  • 京东网站优化那个网站做图片好看
  • 中企动力做的网站山西太原来年做那些网站能致富
  • 深圳企业网站制作企业wordpress 下载页面模板怎么用
  • 潍坊做网站公司补脾最网站建设规划设计报告
  • wordpress 众筹网站模板教学督导网站建设报告
  • K12网站怎么建设网站开发简单吗
  • 欧美网站风格传奇手游网页版
  • 做网站遇到的困难总结如何给公司网站做优化
  • 杭州教育培训网站建设二级建造师官网查询系统
  • 国外酷网站营口电商平台网站建设
  • 网站开发的毕业设计计算机网络技术就业方向工资
  • 网站规划建设方案数字资产交易网站建设