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

网站的设计要素常用素材网站

网站的设计要素,常用素材网站,兼职网站开发一个月,wordpress保存html创建型模式---单件模式(Singleton Pattern)动机#xff08;Motivation): 在软件系统中#xff0c;经常有这样一些特殊的类#xff0c;必须保证它们在系统中只存在一个实例#xff0c;才能确保它们的逻辑正确性、以及良好的效率。 如何绕过常规的构造器#xff0c;…创建型模式---单件模式(Singleton Pattern)动机Motivation):     在软件系统中经常有这样一些特殊的类必须保证它们在系统中只存在一个实例才能确保它们的逻辑正确性、以及良好的效率。     如何绕过常规的构造器提供一种机制来保证一个类只创建一个实例    这应该是类设计者的责任而不是类使用者的责任。结构图         意图     保证一个类仅有一个实例并提供一个访问它的全局访问点。                                 ------设计模式GOF 生活的例子           适用性    1当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时。    2当这个唯一实例应该是通过子类化可扩展的并且客户应该无需更改代码就能使用一个扩展的实例时。代码实现 1单线程Singleton实现    class SingleThread_Singleton     {         private static SingleThread_Singleton instance  null;         private  SingleThread_Singleton(){}         public static SingleThread_Singleton Instance         {             get             {                 if (instance  null)                 {                     instance  new SingleThread_Singleton();                 }                 return instance;             }         }     } 以上代码在单线程情况下不会出现任何问题。但是在多线程的情况下却不是安全的。 如两个线程同时运行到 if (instance  null)判断是否被实例化一个线程判断为True后在进行创建  instance  new SingleThread_Singleton();之前另一个线程也判断(instance  null)结果也为True. 这样就就违背了Singleton模式的原则保证一个类仅有一个实例。 怎样在多线程情况下实现Singleton2多线程Singleton实现 1    class MultiThread_Singleton  2     {  3       private  static volatile MultiThread_Singleton instance  null;  4       private static object lockHelper  new object();  5       private MultiThread_Singleton() { }  6       public static MultiThread_Singleton Instance  7       {  8           get  9           { 10               if (instance  null) 11               { 12                   lock (lockHelper) 13                   { 14                       if (instance  null) 15                       { 16                           instance  new MultiThread_Singleton(); 17                       } 18                   } 19               } 20               return instance; 21           }          22       } 23      此程序对多线程是安全的使用了一个辅助对象lockHelper保证只有一个线程创建实例如果instance为空保证只有一个线程instance  new MultiThread_Singleton();创建唯一的一个实例。Double Check) 请注意一个关键字volatile如果去掉这个关键字还是有可能发生线程不是安全的。 volatile 保证严格意义的多线程编译器在代码编译时对指令不进行微调。(3)静态Singleton实现 3         class Static_Singleton 4         { 5             public static readonly Static_Singleton instance  new Static_Singleton(); 6             private Static_Singleton() { } 7         } 以上代码展开等同于 1     class Static_Singleton 2         { 3             public static readonly Static_Singleton instance; 4             static Static_Singleton() 5             { 6                 instance  new Static_Singleton(); 7             } 8             private Static_Singleton() { } 9         } 由此可以看出完全符合Singleton的原则。 优点 简洁易懂 缺点 不可以实现带参数实例的创建。 注以上代码及信息借鉴于李建忠老师的MSDN和TerryLee的文章。
http://www.zqtcl.cn/news/442948/

相关文章:

  • 品牌形象网站有哪些百度应用中心
  • 网站建设找什么工作室甜点网站建设的功能及意义
  • wordpress 近期文章seo排名优化推广
  • 网页设计制作网站素材网站程序哪个好
  • 郑州好的网站设计公司软件开发哪里学好
  • 网站新建设请示软件外包平台哪家可信赖
  • 做阿里巴巴还是做网站好安卓手机怎么做网站
  • 社区智慧警务网站如何推进警务室建设方案广东网络推广服务
  • 东莞艺美网站建设wordpress get header
  • 做玩具什么 网站比较好网址域名
  • 网站做用户登录中国建设部官方网站资格证查询
  • 济宁网站建设公司大型餐饮网站建设
  • 昊源建设监理有限公司网站做那种的视频网站有哪些
  • wordpress滑块代码seo外链增加
  • 衡阳网站建设公司地址书店网站怎么做
  • 如何检查网站是否做cdn加速html网页基础代码
  • 做网站的岗位好吗钓鱼网站到底怎么做
  • 大连做网站那个公司最好wordpress+高清背景
  • 怎样做网站xml案例建网站
  • 海口发布最新通告用二级域名做网站对seo
  • 网站301重定向 权重转移网站不用下载免费软件
  • 网站系统升级昆明做百度网站电话
  • 电子商务与网站建设实践论文wordpress 主题目录
  • 网站页面打不开中小企业网站推广
  • 佛山建网站企业网站怎么维护
  • 网站制作报价明细wordpress喜欢
  • 网站开发2008文化传播有限公司网站建设
  • 个人账号如何注册网站广州专业网站改版设计公司
  • wordpress视频网站采集沈阳建设工程质量检测中心网站
  • 做网站优化哪家好远程管理wordpress站群