首先,我使用Objective-C,但這根本不重要。我可以使用哪種設計模式來解決這種情況?
我的情況是:
我有兩種不同的情況。我通過預處理宏象區分:
#ifdef USER
do some stuff for scenario 1
#else
do some stuff for scenario 2
這兩種情況都適用於所有跨應用的項目列表,但不同的是獲得這些項目的方式。
在第一個中,我通過向服務器發送請求來獲取項目。
在第二個,我從本地設備存儲獲取它們。
我現在擁有的是實施的第二種方案。我有一個單例類,通過從本地存儲獲取它們來返回項目列表。 (像傳統的數據庫單例)
我想添加其他場景。由於這些項目可以從應用程序的任何位置獲取,因此我希望它也是單身人士。
是否有意義擁有一個singleton超類,然後實現獲取這些項的不同方式的兩個子類?辛格爾頓層次對我來說聽起來很奇怪。
聽起來像工廠方法將是理想的,因爲直到運行時你纔會知道哪些類需要實例化直到運行時間 – DavidB
我知道它在編譯時(實際上是在預處理時間)。 – pdrcabrod