我正在开发一个应用程序,其中有不同类型的“流”(想想 Twitter)。在其中我有一个 - 相当大的 - View Controller 来管理其中的大部分。该流由两个主要实体——用户和帖子——以不同的格式组成。在 View Controller 中,我有一个 NSSTring
属性来确定它是哪种流。这导致了很多这样的事情:
if ([self.postType isEqualToString:@"stream"]) {
// Do stuff
} else if [self.postType ...
[...]
[...]
我不知道这是否是明智的最佳解决方案设计,它会导致很多耦合。好处是我避免了很多重复。但是有没有更好/更好的方法来做同样的事情?
最佳答案
如果你真的想避免继承,你可以为每个流使用不同的方案。 为每种流类型映射您的选择器(例如,为每个方案定义一个选择器索引枚举和一个选择器数组 [C-style array] , see here )。 每个方案只会访问不同的选择器数组。
关于iOS 重构/设计 : One view controller to manage different models/streams?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15742742/