嗨,嗨,我想放在對象創建的限制意味着一個類最多可以有4個對象不超過如何實現這一目標?OOPS(設計模式)
回答
一種方法是使用一個對象工廠創建至多4個實例。這是一個有趣的需求......對象池是否會滿足相同的需求?
對於有限的工廠和對象池均爲+1。 – LiraNuna 2010-02-24 05:14:29
帶有對象池或緩存的工廠類將成爲此處的途徑 – 2010-03-11 08:52:14
您可以計算使用靜態類屬性創建的實例的數量以存儲計數。這可以在類構造函數中完成,也可以使用工廠模式。在不知道目標語言的情況下更準確地回答這個問題有點困難。
嘗試修改Singleton模式。您可以使用計數變量。你需要保持構造函數爲私有的,以控制no。的實例。
該變體稱爲MultiTon :) – malaverdiere 2010-02-24 05:59:04
@mlaverd - 同意:) – Padmarag 2010-02-24 07:11:29
最簡單的方法是使用名爲「count」的類級屬性,並在構造函數中確保「count」不超過某個數字。
//pseudocode
class foo
static count = 0
def constructor()
if count < 4
//create object
else
//there are too many!
一種實現方式是Singleton設計模式, 每當我們打個電話,以創建一個實例,請檢查已創建實例的計數,如果實例數已經達到4,然後用您的應用程序的同一個實例。 TO有一個計數,Creat Static Int Counter = 0;並不斷增加以獲得結果。
這是短碼snippest,將得到上述結果,在c#
sealed class clsInstance
{
public static int count = 0;
private static readonly clsInstance inst = new clsInstance();
clsInstance()
{
}
public static clsInstance Inst
{
get
{
if (count < 4)
{
Console.WriteLine("object : " + count);
count++;
return inst;
}
return null;
}
}
}
class MainClass
{
public static void Main(String[] args)
{
clsInstance c1 = clsInstance.Inst;
clsInstance c2 = clsInstance.Inst;
clsInstance c3 = clsInstance.Inst;
clsInstance c4 = clsInstance.Inst;
Console.ReadLine();
clsInstance c5 = clsInstance.Inst;
Console.ReadLine();
}
}
- 1. 設計一個國際象棋遊戲(使用OOPS和Java設計模式)
- 2. 設計類 - OOPS功能
- 3. oops設計特性vs其他編程模型
- 4. 設計模式
- 5. 設計模式:
- 6. 設計模式
- 7. 設計模式
- 8. 設計模式
- 9. 設計模式
- 10. 設計模式
- 11. 設計模式?
- 12. 設計模式
- 13. MVC設計模式 - 設計模型
- 14. MVC4設計模式
- 15. Singleton設計模式
- 16. 設計模式,在
- 17. DAO設計模式
- 18. Observer設計模式
- 19. OOP設計模式
- 20. C++設計模式
- 21. MapMaker設計模式?
- 22. SQL設計模式
- 23. PHP設計模式
- 24. PostgreSQL模式設計
- 25. Java:Builder設計模式
- 26. 設計模式 - ASP.net
- 27. Javascript設計模式?
- 28. linq設計模式
- 29. CUDA設計模式
- 30. FTP設計模式
它是依賴於語言的。你對哪種語言感興趣? – 2010-02-24 05:14:05
值得一讀Steve Yegge對Singleton模式的譴責,看看這些警告是否適用於你:http://steve.yegge.googlepages.com/singleton-considered-stupid 你班上的客戶不應該知道該課程的實例有限。首先,這使得單元測試更加困難。 – RossFabricant 2010-02-24 05:50:05
你想要完成什麼樣的世界? – 2010-02-24 05:53:28