2012-11-30 38 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];