在阅读了大量博客,论坛条目和几个Apple文档之后,我仍然不知道在Objective-C中进行广泛的子类化是否是明智之举.
以下面的例子为例:
说我正在开发一个有很多元素的益智游戏.所有这些元素共享一定量的相同行为.然后,在我的元素集合中,不同的元素组共享相同的行为,区分组和组等...
因此,在确定从什么继承的东西之后,我决定从遗忘中继承.为什么我不应该? 考虑到使用这个模型轻松调整一般行为,我认为我完成了OOP的用途.
但是, - 这是我的问题的来源 - Apple提到使用委托,数据源方法和非正式协议来支持子类化.它真的让我难以理解为什么?
似乎有两个阵营.那些支持子类化的人,那些不支持的子类.这显然取决于个人品味.我想知道大规模子类化的优缺点是什么,而不是大规模的子类化?
总结一下,我的问题很简单:我是对的吗?为什么或为什么不呢?
在Objective C中,如果你是子类的东西,并且计划覆盖超类的方法,你应该在你的子类@interface中重新声明超类方法吗?
例如,如果您是UIViewController的子类(例如MyViewController),并且您计划覆盖"viewDidLoad",您是否应该在MyViewController @interface声明中包含该方法,或者只是在MyViewController.m中实现它?
在我遇到的例子中,我已经看到它完成了两种方式(在子类接口中重新声明方法,或者不重新声明方法).可能没有任何功能差异,但最佳做法是什么?