下载此文档

最简单的设计模式学习 Singlton模式.ppt


文档分类:IT计算机 | 页数:约16页 举报非法文档有奖
1/16
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/16 下载此文档
文档列表 文档介绍
最简单的设计模式学习 Singlton模式.ppt最简单的设计模式学****Singleton模式学****设计模式,自然从最简单的模式入手,而最简单的模式便是Singleton。所以第一篇就来所以说Singleton模式。看完GOF和DesignpatternsinJava的书,感觉Singleton虽然简单,但是想写出一个好的Singleton也不是一上来就能写出来的。 Singleton模式的用处自然是保证一个类只有一个唯一的实例。在建模中涉及到的只能有一个对象,例如Struts中的Action类就是一例。除此之外,Singleton还使得该对象只有一个全局访问点。这就是SIngleton的作用。说得比较抽象,我们来看一个简单Singleton的C++和Java的代码: C++Singleton模式:类定义: 2.{ : *Instance(); 5.~Singleton(); 6. : ();9. *instance; 11.}; 方法实现: *Singleton::instance=0; 13. ::Singleton() 15.{17.} 18. ::~Singleton() 20.{ 21. 22.} 23. *Singleton::Instance() 25.{ (instance==0){=newSingleton(); 28.} 29. ; 31.} JavaSingleton模式: {; 35. (){ (instance==null) =newSingleton(); 39. ;41.} 42. 43./***//**CreatesanewinstanceofSingleton*/ (){ 45.} 46.} 通过上面的例子可以看出,Singleton的实现并不难,只要将构造函数访问域设为私有,然后添加一个静态引用和一个获得该应用的静态方法即可。其实在C++中定义一个全局静态变量也可以达到这个效果,但是像Java这样的语言就是能使用Singleton了。上面的程序有一个问题,就是只能运行在单线程的环境下。为此我在C++上作了个实验。首先#include。在SIngleton::Instance()函数中增加一个Sleep(1000),程序如下: *Singleton::Instance() 48.{ (instance==0){ (1000); =newSingleton();52.} 53. ; 55.} 然后在主函数中创建两个线程,程序如下: *s1=0,*s2=0; 57. (PVOID) 59.{ =Singleton::Instance(); 61. ;63.} 64. (PVOID) 66.{ =Singleton::Instance(); 68. ; 70.} 71. (intargc,char*argv[]) 73.{

最简单的设计模式学习 Singlton模式 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数16
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小231 KB
  • 时间2020-01-10