2015-02-06 123 views
0

最近我開始研究關於對象池設計模式的更多信息,並遇到了無法找到答案的問題。設計模式:連接的對象池

對象池模式的想法是通過重用它們來節省昂貴的資源。檢查與db的連接是非常昂貴的資源。因此我想將它添加到「池」中。

我總是被教導保持連接儘可能少。 我可能會弄錯這一切,但以我的觀點來看,創建一個新的連接並長時間保持活動狀態(在游泳池中)只是浪費資源。連接可能不會創建多次,但它會一直打開。

我很樂意有一個解釋。

+0

是不是很明顯,你可以關閉池中的資源,如果它們不被使用任意時間?沒有人說過,你必須讓它們永遠活着,而不是尋找資源成本隨着時間/物體創造成本的最佳折中。 – 2015-02-06 14:56:56

回答

1

一方面,創建新的連接可能壞了,由於長期的創建時間

另一個極端是完全重用也可能是有問題的,因爲你持有的資源很長一段時間。

對象池模式允許您在一段時間後配置此功能和(例如)超時連接。由於每個面向性能的解決方案都需要對特定情況進行一些調整。這種模式是你應該保持這種配置的地方。