我一直在为应用程序重写考虑几个设计选项,但似乎无法开始,因为我想不出我喜欢的设计。我的大部分担忧源于子类化问题。基本上,我有一些方面希望在多个类中重用:
- 用户界面“外观”
- 用户界面行为(对话框、活动指示器、导航)
- 网络接口(如 Three20's
ModelViewController
、类似 aload
、more
等) - 状态驱动的行为(可达性、登录状态、通知等的变化)
由于 Obj-C 不支持多重继承,我不能做类似MyViewController : StandardUILookNFeelViewController, NetworkEnabledViewController
. 我知道我可以像在 Java 中使用接口一样使用协议,但我不知道我是否应该将外观、网络行为、状态驱动的行为子类化,或者尝试将它们全部融合在一起班级。
根据您的经验,您是否使用 yourBaseViewController
来处理外观和感觉,是否使用它来处理网络内容,是否使用它来处理行为?您是否将所有这些都归为一类?你有像three20
's 这样的大类层次结构,还是我缺少更聪明的解决方案?