【问题标题】:iOS class designiOS 类设计
【发布时间】:2013-11-30 13:54:14
【问题描述】:

我有一个包含大约 50 种方法的类,我将这些方法分为多个类别。

由于所有方法都在类别中,所以我原来的类现在是空的。

这是一个糟糕的设计吗?不然怎么拆分大班?

【问题讨论】:

  • 您将代码分成了哪些部分?也许子类会是更好的方法
  • 您应该提供课程的详细信息以及类别代表什么,以便我们提供有意义的建议。这有点太抽象了。

标签: ios objective-c oop


【解决方案1】:

如果您可以将您的方法分组为一组逻辑功能。类别可能是不错的选择,因为它可以帮助您管理代码。但是,如果您没有逻辑连接的方法,则没有好的解决方案。

【讨论】:

    【解决方案2】:

    这是否是糟糕的设计几乎是一个主观的话题。这取决于许多因素。没有更多关于你的班级的细节,很难说;也许你的设计已经是一个“好”的了。但是让我提出一种不同的方法,也许它可以帮助您确定您当前的设计是否适合您:

    之所以将所有这些方法(您可以在逻辑上分为几类)归为一个类,很可能是因为它们需要访问您存储在实例变量中的相同数据。如果没有,您已经可以轻松拆分班级。

    如果所有这些方法都需要访问相同的数据,另一种方法是创建一种“上下文”对象,其中包含必要数据的 getter 和 setter。然后,您可以创建包含类别中的方法的类,并为每个类别分配相同的上下文。

    您可能需要让其中一些类立即对上下文类中的更改做出反应。一种解决方案可能是 Key-Value Observing。

    但请注意:拥有 10 个需要一直访问的不同类/对象可能比拥有一个大类更糟糕。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-02
      • 2014-03-03
      • 2012-06-24
      • 1970-01-01
      • 2012-05-24
      • 2021-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多