2013-07-01 24 views

回答

0

Singleton模式幾乎是不合適的。建議使用Dependency InjectionService Locator

如果您使用的是低級別的Java servlet,而不是像Spring這樣的控制反轉的MVC框架,您會發現DI會增加大量的實施開銷。在這種情況下,服務定位器可能更合適。服務定位器在消費者和資源之間添加一個間接層。例如:

MyResource resource = MyResourceLocator.resource(); 

這是怎麼樣比單身更好?這不是很多如上所示更好 - 我們仍然不期望地耦合到MyResourceLocator類和它的靜態方法。我們可以改善這一點:

MyResource resource = MyLocator.newInstance().resource(); 

這裏,MyLocator可以使用靜態工廠方法,newInstance一個抽象類。然後可以通過不同的實現覆蓋resource()。例如,工廠方法間接方法允許您提供不同類型的定位器,具體取決於您是在生產還是在測試中。 MyLocator甚至可能堅持Service Provider Interface (SPI) standard,允許第三方無縫插入並提供資源。

0

Spymemcached使用單個IO線程,但行爲像多線程客戶端。以一個線程爲例,您可以每秒處理高達50k的運算。如果你想創建一個線程池,那麼你將不得不在你的用戶應用程序中執行它。

相關問題