我想設計一個類,它將以類似於單例的方式存在,該類將有一個主實例,但也可能有多個克隆的主要實例。只有1個類可以創建主實例,其他人都可以創建一個克隆。像這樣的東西(c#):如何設計一個可以僅由1個類實例化的單例
class Singleton
{
private static Singleton _mainInstance;
private Singleton() {..}
public void Clone() {..}
public static Singleton MainInstance
{
if (_mainInstance == null)
{
_mainInstance = new Singleton(); // how to secure this for only 1 class?
}
return _mainInstance;
}
}
class MainClass
{
public MainClass()
{
Singleton.MainInstance ....
}
}
MainClass應該是唯一允許實例化單例的類。在C++中,可以通過完全隱藏創建邏輯並將MyClass作爲Singleton的朋友來完成。
什麼是單身人士的克隆?同一對象(通過引用)或克隆時具有相同狀態的新對象?如果第一,你的問題是自我多餘的,如果第二,不要稱之爲單身...原型可能? – 2010-10-20 16:59:48