2011-02-16 40 views
2

【JAVA]非AOP最佳實踐應用範圍的單身

我將出現在所有我的代碼(LogHelpers,異常處理程序,CacheHelpers等)都表示「跨領域幾個實用程序類關注「,並且將成爲AOP的理想候選人,除非...我沒有時間學習AspectJ或AOP聯盟或Google Guice等AOP框架。

話雖如此,我仍然希望我的代碼儘可能乾淨整潔,並且儘可能保持最佳實踐(非AOP最佳實踐!)。

我有兩個問題可能需要兩個解決方案。首先是我有一些這些通用/高度耦合/ AOP候選類只需要靜態方法;這些類本身沒有任何非靜態/實例級別的方法。像ExceptionHandler.handleException(Exception exc)。

第二個問題是我有幾個這樣的通用/ AOP候選類有確實的方法實例,但需要實例化,但可能最好作爲單例,我的應用程序創建一個「全局」它們的實例和相同的參考在整個其他包和代碼庫中使用。

的sooo ...

我的問題是:什麼是最好的(非AOP)的設計模式&實踐類,:

(一)只定義消耗遍佈代碼庫靜態方法; (b)只需要一個將在代碼庫中使用的單個實例?

單身模式?廠?靜態導入?其他?!?!

感謝您的任何建議!

回答

1

Inversion of Control(可能使用支持生命週期管理的IoC Container library)和構造函數依賴注入接口。

如果你不得不使用Service Locator模式,但我會避免這種情況。

請注意,您的「單身人士」只是POJO。 IoC容器負責確保唯一一個(如果您設置容器控制的生命週期或其他類型)。

+0

謝謝!我今晚會檢查IoC。 IoC與依賴注入相同嗎? – Eugie 2011-02-16 20:16:15