我一直在努力解决应用程序重写的几个设计选项,似乎无法继续,因为我无法想出一个我喜欢的设计。我的大多数问题源于子类化问题。基本上,我有一些方面需要在多个类中重用:
ModelViewController
,类似load
,more
等等由于Obj-C不支持多重继承,因此无法执行MyViewController : StandardUILookNFeelViewController, NetworkEnabledViewController
之类的操作。我知道我可以像在Java中使用接口一样使用协议,但我不知道我是否应该将外观,网络行为,状态驱动的行为子类化,或者尝试将其全部放在一个类。
根据您的经验,您是否使用BaseViewController
来处理外观和感觉,是否使用它来处理网络内容,是否使用它来处理行为?你把所有这些都扔进了一堂课吗?你有一个像three20
这样的大类层次结构,还是有一个我想念的更聪明的解决方案?
答案 0 :(得分:0)
人们倾向于将功能集中到视图控制器中,因为“它很方便”。但是,根据定义,处理多重责任的单个类违反了单一责任原则。
这对可读性,可维护性和可测试性非常重要。如果你想重用,那就很重要了。
我建议您阅读: