假設我目前正在設計一個需要使用全球定時系統的應用程序(這是一個橫切關注點)。我需要從應用程序中的任何地方訪問全球計時系統中的數據,而不是我可以看到「應用程序的這部分需要它,而另一部分則不需要」。如何處理面向對象應用程序中的交叉問題?使用Singleton?依賴注入?什麼?
我的問題是,我應該設計作爲一種環境上下文(在這種情況下,單身人士),還是我應該嘗試設計其他方式來適應這個?
我當然不覺得讓我的所有類都必須通過構造函數注入才能讓這個全局時序類傳遞給它們。很多時候我不得不將這個參考傳遞給下一個鏈,直到某個類最終需要它爲止。另一方面,從閱讀的角度來看,這會使事情變得更加清晰(它明確了我的班級的依賴關係)。
人們通常會如何處理這個問題?有沒有其他技術可以幫助解決這個問題? AOP也許?
PS:全球計時系統只是我從我正在閱讀的書中拿出的一個想法。日誌系統將是這類問題的另一個很好的例子。
感謝
關於將它分成2的情況如何? – 2010-08-19 17:04:53
@devoured - 這是我在Roy Osherove的「單元測試藝術」中讀到的,關於讓單體的工廠部分與靜態部分分離,因此您可以在測試中替換它以返回您喜歡的內容。這有一點關於它:http://weblogs.asp.net/rosherove/archive/2007/06/10/tips-for-testable-code-and-for-testing-legacy-code.aspx – 2010-08-19 17:10:30