选择泛化或关联(聚合)

时间:2014-04-15 16:28:33

标签: ios objective-c oop

我的IOS应用程序包含类似的视图,可以从服务器中获取数据并将其可视化。 我想在一个类中组合常见的网络代码,以确保可重用性并避免重复的代码。

我应该在超级类或关联类中找到网络代码。我无法决定应该使用哪种方法,概括或关联(聚合)?

如果你是我,你会怎么做?

1 个答案:

答案 0 :(得分:1)

创建视图超类以存储客户端 - 服务器通信代码的原因不是很好的解决方案:

  1. 客户端 - 服务器通信不是数据显示的一部分(View)。从逻辑上讲,它是独立的实体。
  2. 如果您使用关联对象,则可以在任何地方使用它,而不仅仅是在表示已加载数据的视图中。它使您的架构更加灵活。
  3. 在你的案例中有更多的理由不使用继承,但我认为这两点足以做出决定。 在我看来,你应该使用相关的对象(聚合)。