2012-06-08 58 views
1

我一直在用多种设计方案摔跤应用程序重写,似​​乎无法得到持续,因为我不能拿出我喜欢的设计。我的担心大部分来自子类问题。基本上,我有一些问题,我想多类中被重用:替代子类来处理UI VS行为的担忧在可可触摸

  • 用户界面的“外观和感觉”
  • 用户界面行为(对话,经济活动指标,导航)
  • 网络接口(如Three20的ModelViewController,像一个loadmore,来回左右)
  • 国家驱动的行为(变化可达性,登录状态,通知等)

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

在你的经验,你用你的BaseViewController处理的外观和感觉,你用它来处理网络的东西,你用它来处理行为?你把所有这些都扔进一个班级吗?你有像three20这样的大班级吗?或者我缺少更聪明的解决方案吗?

回答

0

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

这是可读性,可维护性和可测试性的重要。如果你想重复使用,这是至关重要的。

我建议你阅读了上: