1

我一直在为应用程序重写考虑几个设计选项,但似乎无法开始,因为我想不出我喜欢的设计。我的大部分担忧源于子类化问题。基本上,我有一些方面希望在多个类中重用:

  • 用户界面“外观”
  • 用户界面行为(对话框、活动指示器、导航)
  • 网络接口(如 Three20's ModelViewController、类似 a loadmore等)
  • 状态驱动的行为(可达性、登录状态、通知等的变化)

由于 Obj-C 不支持多重继承,我不能做类似MyViewController : StandardUILookNFeelViewController, NetworkEnabledViewController. 我知道我可以像在 Java 中使用接口一样使用协议,但我不知道我是否应该将外观、网络行为、状态驱动的行为子类化,或者尝试将它们全部融合在一起班级。

根据您的经验,您是否使用 yourBaseViewController来处理外观和感觉,是否使用它来处理网络内容,是否使用它来处理行为?您是否将所有这些都归为一类?你有像three20's 这样的大类层次结构,还是我缺少更聪明的解决方案?

4

1 回答 1

0

人们倾向于将功能集中到视图控制器中,因为“它很方便”。但是,根据定义,处理多个职责的单个类违反了单一职责原则。

这对于可读性、可维护性和可测试性很重要。如果您想重复使用,这是必不可少的。

我建议阅读:

于 2012-06-08T17:15:55.100 回答