Iphone 在Cocoa Touch中处理UI与行为问题的子类化替代方案
我一直在为应用程序重写的几个设计选项绞尽脑汁,但似乎无法开始,因为我无法想出一个我喜欢的设计。我的大部分顾虑都源于子类化问题。基本上,我有一些方面希望在多个类中重用:Iphone 在Cocoa Touch中处理UI与行为问题的子类化替代方案,iphone,objective-c,ios,cocoa,design-patterns,Iphone,Objective C,Ios,Cocoa,Design Patterns,我一直在为应用程序重写的几个设计选项绞尽脑汁,但似乎无法开始,因为我无法想出一个我喜欢的设计。我的大部分顾虑都源于子类化问题。基本上,我有一些方面希望在多个类中重用: 用户界面“外观和感觉” 用户界面行为(对话框、活动指示器、导航) 网络接口(如Three20的ModelViewController,类似于加载,更多,等等) 状态驱动的行为(可达性、登录状态、通知等的更改) 由于Obj-C不支持多重继承,我无法执行类似于MyViewController:StandardUILookNFeel
- 用户界面“外观和感觉”
- 用户界面行为(对话框、活动指示器、导航)
- 网络接口(如Three20的
,类似于ModelViewController
,加载
,等等)更多
- 状态驱动的行为(可达性、登录状态、通知等的更改)
根据您的经验,您是否使用
BaseViewController
来处理外观和感觉,您是否使用它来处理网络内容,您是否使用它来处理行为?你把所有这些都放在一节课上吗?您是否有像three20这样的大型类层次结构,或者我缺少的是更聪明的解决方案吗?人们倾向于将功能集中到视图控制器中,因为“它很方便”。但根据定义,处理多个职责的单个类违反了单一职责原则
这对于可读性、可维护性和可测试性非常重要。如果你想重复使用,这是必不可少的
我建议阅读以下内容:
- (不是Three20类,而是设计原则)