新的,這裏是我problem--共享一個實例,但創造的每個新工藝
我有4個班 - 起動器,數據庫和調度和測試類。
測試類將創建一個Starter的新實例(加載並啓動整個過程)。 初學者初始化調度程序和數據庫類。
測試類將數據傳遞給啓動器。 Starter將其存儲在Database類的HashMap中。 調度程序讀取數據庫類中的相同的 HashMap。
我們保證完全相同的HashMap的是所有類的訪問在我的Java項目,我有2個選項,使HashMap的靜態或使數據庫中的一個單例類。現在我已經爲數據庫創建了一個單例類。
如果Test類執行此
起動starterInstance1 =新啓動器的problem--();
Starter starterInstance2 = new Starter();
我該如何確保starterInstance1和starterInstance2擁有自己的Database類或HashMap的實例?
==========
就更加明顯:
類測試{
入門啓動1 =新入門(); //創建我的應用程序的1個實例
start1.init(); //這將初始化調度程序等,並做了一個 「getDatabaseInstance()」
對(INT I = 0;我< 50;我++){
start1.sendData(「abc」); //將所有這50個請求提交給一個線程池,該線程池將發送請求以存儲在數據庫類中的HashMap中。 HashMap將由Scheduler和其他類同時訪問。我已經創建了數據庫類singleton,以便所有類都將訪問同一個數據庫實例。
}
//同樣創建我的應用程序的另一實例
起動START2 =新起動();
start2.init(); //現在這裏如果我做「getDatabaseInstance()」,我會得到與上面相同的實例。但我想爲這個應用程序的實例單獨的數據庫。我如何實現這一目標?
對(INT I = 0;我< 50;我++){
START2。的SendData( 「ABC」);
}
}
如果數據庫是一個單身,我不明白他們怎麼可能有不同的實例。這是單身模式的重點。你的問題的一部分說,所有的類都必須訪問同一個確切的映射,另一個說每個起始器實例都應該有自己的實例。你想要什麼? – 2012-02-04 08:49:42
是的單身意味着只有一個實例。但我不想那樣。我的整個應用程序的起點是Starter類。每當創建一個新的應用程序實例(即新的Starter())時,我希望它有自己的數據庫和它自己的調度程序,它們將訪問同一個數據庫。使數據庫成爲單例類不是這裏的解決方案,它意味着每個新的Starter()都將使用同一個數據庫。我希望每個新的Starter()都有自己的數據庫 – anzaan 2012-02-04 13:43:17