0

我正在开发一个应用程序,其中有不同类型的“流”(想想 Twitter)。在其中,我有一个非常大的视图控制器来管理其中的大部分内容。该流由不同格式的两个主要实体 - 用户和帖子组成。在视图控制器中,我有一个NSSTring属性来确定它是哪种流。这导致了很多:

if ([self.postType isEqualToString:@"stream"]) {

    // Do stuff

} else if [self.postType  ...
[...]
[...]

我不知道这是否是最好的解决方案设计,它会导致很多耦合。好处是我避免了很多重复。但是有没有更好/更好的方法来做同样的事情?

4

2 回答 2

2

如果你真的想避免继承,你可以为每个流使用不同的方案。为每个流类型映射您的选择器(例如,为每个方案 [C-style array] 定义一个选择器索引枚举和一个选择器数组,请参见此处)。每个方案只会访问不同的选择器数组。

于 2013-04-01T11:55:42.263 回答
1
typedef enum{
    stream,
    --,
    --
}postType;

像这样使用更好..

  switch (_postType) 
    {
        case stream:
            //do what you want
            break;
        case --:
            break;
         case --:
            break;
    }
于 2013-04-01T11:52:22.340 回答