2012-11-30 39 views
0

我在這裏學習一些ObjC資源,其中一個控制器擁有NSDictionary類型的屬性,名爲「overrideClassNames」。 作爲重要的就是了類的現有接口的類的現有的子類的和值,如:這是在ObjectiveC中實現工廠模式的常用方法嗎?

controller.overrideClassNames = @{(id)[DefaultType class] : [MySubClassedDefaultType class]}; 

每當需要的DefaultType的情況下,它會查字典,並創建一個如果已經設置了更專門的實例。

我在想如果這實際上是ObjC中常見的方法?從C#和Java開始,我的想法是創建一個委託工廠方法,如果需要DefaultType的實例,那麼該方法將被調用。然後,該課程的用戶可以返回他更專業的版本。 或者(在C#)我會做的類通用的,讓它有一個<T> : DefaultType, new()

回答

1

這並沒有主要做了工廠模式但子類IMO - 但

肯定。有一個返回類對象的方法的常用方法 - 在exx的osx中。 A控制有CellClass(它分配/ inits做圖紙,並視需要)

,並在單你經常有這樣的事情:

_sharedInstance = [[[self class] alloc] init];