所以我一直在构建一个应用程序一段时间,随着时间的推移,我的一个类(一个 UIViewController)已经变得非常大,用一个视图做了很多事情。因此,我必须使其符合许多协议(现在有 12 个)。我现在开始担心我是否遵守了太多。
在一个类中遵守很多协议有问题吗?会不会有性能影响或类似的事情?我不是在寻找个人意见,而是在寻找可能的性能问题,或者它是否违反最佳实践/样式指南文档(例如 Apple 分发的文档)。
我的班级遵守的一些协议(不包括一些自定义协议):
UIAlertViewDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate,
UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate,
UIPopoverControllerDelegate, UIBarPositioningDelegate,
ABPeoplePickerNavigationControllerDelegate
编辑:
正如一些答案所指出的,大多数协议都与 UI 相关 - 并且视图本身并不混乱。 UIAlertViewDelegate
,UIActionSheetDelegate
,MFMailComposeViewControllerDelegate
, 和ABPeoplePickerNavigationControllerDelegate
都单独显示(在最后两种情况下模态显示)。 UITableViewDataSource
并且UITableViewDelegate
只是处理一张桌子。 UITextFieldDelegate
用于管理对字段的搜索(以便我检查输入的文本是否“有效”)。 UIBarPositioningDelegate
iOS7 需要外观。这个类不是太大,只处理自己,没有太多的耦合(至少,在我看来)。