所以我一直在建立一个应用程序一段时间,随着时间的推移,我的一个类(一个UIViewController)已经变得相当大,做了很多东西与一个视图。因此,我必须使其符合很多协议(现在有12个)。我现在开始担心我符合一些太多。符合太多协议的类?
遵守一个类中的很多协议是否存在问题?会有性能问题或类似的情况吗?我不是在寻找个人意见,而是在于可能出现的性能问题,或者是否违背了最佳实践/风格指南文档(例如Apple发布的文档)。
我的一些类符合协议(不包括一些自定义的协议)的:
UIAlertViewDelegate, UIActionSheetDelegate, MFMailComposeViewControllerDelegate,
UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate,
UIPopoverControllerDelegate, UIBarPositioningDelegate,
ABPeoplePickerNavigationControllerDelegate
编辑: 正如一些答案指出,大部分协议都是UI相关 - 而且观点本身并不混乱。 UIAlertViewDelegate
,UIActionSheetDelegate
,MFMailComposeViewControllerDelegate
和ABPeoplePickerNavigationControllerDelegate
都单独显示(模态地在最后两种情况下)。 UITableViewDataSource
和UITableViewDelegate
只是处理表格。 UITextFieldDelegate
用于管理字段的搜索(以便让我检查输入的文本是否“有效”)。外观上,iOS7需要使用UIBarPositioningDelegate
。 该类不是太大,只处理自己,没有太多的耦合(至少在我看来)。
哇一个downvote说几乎完全是什么其他答案说:) –
(我没有downvote,但)我不认为如果一个类声明“意外行为”或“多线程”将是一个问题符合许多协议。 –
@MartinR感谢,这是有道理的,我想我不够清楚,我的意思是如果两个协议定义相同的方法,你可以看到问题。 –