乙個單例模式的簡單例子

2021-06-16 16:10:36 字數 989 閱讀 1216

ex1:

public class singleton   

public static singleton getinstance()   

return singleton;   

}   

}  這個不多說了,肯定是錯誤的,如果多個執行緒訪問的時候都是==null,那麼接下來就是產生多個例項。不算單例模式。

ex2:

public class singleton   

public static singleton getinstance()   

}   

return singleton;   

}   

} 這個雖然加了同步鎖,但是如果多個執行緒同步訪問==null,那麼還是會產生多個例項,只是產生例項的時候同步而已。

ex3:

public class singleton   

public static singleton getinstance()   

}   

return singleton;   

}   

} 這個就可以了,但是這個地方對於每個訪問的這個方法都是同步,而最需要的同步只是在new的地方,所以這樣做雖然保證了單例,但是效率有點低哦。

ex4:

public class singleton   

public static singleton getinstance()   

}   

}   

return singleton;   

}   

} 這個不錯,保證了單例。這個叫做double-check 雙重檢查。

還有乙個比較簡單的寫法。

ex5:

public class singleton    

public static singleton getinstance()    

}  這樣也可以,具體2種差別就不多說了。下面這個看起來要簡單好多的哈

c 單例模式簡單例子

using system using system.collections.generic using system.linq using system.text using system.threading.tasks 單例模式確保乙個類只有乙個例項,並提供乙個全域性訪問點 namespace 單...

設計乙個簡單的單例設計模式

概念 單例模式 singleton pattern 涉及乙個單一的類,確保只有單個物件被建立。這個類提供一種訪問其唯一物件的方式,可以直接訪問,不需要例項化該類的物件。注意 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。1.餓漢式 餓漢式是...

對單例模式的乙個簡單思考

測試 如下 include class testsingleton static testsingleton getinstance int i private testsingleton inti m i i intm i int main 很簡單,最終的結果怎樣呢?我原本以為1和2都會輸出的,因...