有些不明白这个“泛型单例模式”的代码!请指教

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceapje.frameWork{publicsealedclasssingleton<T>whereT:new(){privatestaticTinstance=newT();privatestaticobjectlockHelper=newobject();//构造函数privatesingleton(){}//获取实例publicstaticTgetInstance(){if(instance==null){lock(lockHelper){if(instance==null){instance=newT();}}}returninstance;}//设置实例publicvoidsetInstance(Tvalue){instance=value;}}}代码从DZNT!找回来学习的。为什么红色字部分,要每次初始化呢?我的理解:是不是每次Instance都重新初始化对象呢?那不是浪费吗?

解决方案

解决方案二:
msdnsearchstatic
解决方案三:
引用1楼的回复:

msdnsearchstatic

我知道STATIC啥意思啊
解决方案四:
只在调用类型构造器调用时初始化,而类型构造器在clr中会确保只调用一次
解决方案五:
这样做是为了防止多线程调用造成的同步问题。本身singleton就有懒惰加载和贪婪加载两种实现策略。
解决方案六:
模糊的记得以前不小心用过单例模式,就是只声明一次实例的意思。。
解决方案七:
引用2楼的回复:

引用1楼的回复:msdnsearchstatic我知道STATIC啥意思啊

知道啥意思,就不会有疑问

时间: 2024-10-04 00:06:23

有些不明白这个“泛型单例模式”的代码!请指教的相关文章

class-实在想不明白,为何这段代码只输出128

问题描述 实在想不明白,为何这段代码只输出128 import java.util.*; public class TheLuckyNumbersLevelTwo { ArrayList al = new ArrayList(); public static void find(int[] numbers) { int t=128; int i; for(i=0;i<t;i++); { System.out.println(i); /* System.out.print('['); int j=

path-c++代码,请高手帮我看一下这个代码怎么修改

问题描述 c++代码,请高手帮我看一下这个代码怎么修改 return 0; } TCHAR szPath[MAX_PATH] = { 0 }; HRESULT hr; hr = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, szPath); if(SUCCEEDED(hr)) { CString strPath = szPath; strPath += _T("\temp"); hr = ::URLDow

java-运行下面的代码出现图中的错误是为什么?大神请指教

问题描述 运行下面的代码出现图中的错误是为什么?大神请指教 package inheritance; import java.util.Date; import java.util.GregorianCalendar; public class Employee { private String name; private double salary; private Date hireday; public Employee(String n,double s,int year,int mon

基础 发散-真心的求高手帮我看看代码,指教下,我很困惑

问题描述 真心的求高手帮我看看代码,指教下,我很困惑 命题:求求1+1/2+1/3+--+1/n的c语言编程 以下是我的代码: #include void main() { float i,j,sum; printf("请输入你想求的位数:n"); scanf("%f",&j); for(i=1;i<=j;i++) { sum+=1/i; } printf("结果为 %fn",sum); } 运行结果不对,但是我觉得思路很清晰,找不

java的泛型集合求大神指教

问题描述 java的泛型集合求大神指教 animal ani=new animal("欧欧", "欧瑞娜"); animal ani2=new animal("丫丫", "拉布拉多"); animal ani3=new animal("菲菲", "拉布拉多"); animal ani4=new animal("美美", "欧瑞娜"); List l

java泛型怎么理解?求指教

问题描述 java泛型怎么理解?求指教 java泛型中,定义泛型方法格式:public T fun(T t),这几个T分别是什么意思? 我知道最后一个T是参数,那前面两个T表示什么?哪个表示返回类型? 解决方案 你的意思应该是public T fun(T t)中几个T的含义.从左至右: 1,代表声明此方法中T是泛型,否则T代表名字为'T'的类 2,第二个T代表返回值 3,第三个代表参数 另外带泛型的类写法是 class Demo<E>{ void method1(E obj){ } E met

单链表-请指教下面数据结构代码的功能?

问题描述 请指教下面数据结构代码的功能? status A(LinkList L){//L是无表头结点的单链表 if(L&&L->next){ Q=L;L=L->next;p=L; while(p->next)p=p->next; p->next=Q;Q->next=NULL; } return OK; } 解决方案 感觉是把第一个节点变为链表的最后一个节点. status A(LinkList L){//L是无表头结点的单链表 if(L&&am

java-Java 8 代码要写junit测试,但是看不懂代码请大神指教

问题描述 Java 8 代码要写junit测试,但是看不懂代码请大神指教 @Bean public Jackson2ObjectMapperBuilder jacksonBuilder() { Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder(); builder.indentOutput(true) .serializerByType(LocalDate.class, new JsonSerializer

利用泛型委托增加代码的优雅 扩展ExtJS (2)

上篇(用Asp.net扩展ExtJS)文章中在添加子类的时候利用的仍然是原来的老 方法,创建了一个List<Base>的集合,但这样的代码还不够紧凑,依然需要 优化. 利用.net 自带的Action<T>委托可以方便的进一步优化代码. aspx代码: <% =this.HtmlExtJs().Init("ss", f => { f.title = "xxx"; f.varid = "xx"; f.width