Objective c 模型类是否应该包含加载其类型的所有对象的方法?

Objective c 模型类是否应该包含加载其类型的所有对象的方法?,objective-c,model-view-controller,architecture,Objective C,Model View Controller,Architecture,这个问题与架构更相关,但我将“用”一种具体的编程语言——objective c——因为这种语言也使用类方法,而不仅仅是实例方法(我不确定它在其他语言中是如何使用的)。另外,我正在使用MVC设计模式 因此,让我们来看一篇模型类文章。该类将具有诸如标题、描述、文本等属性。。。只是一些基本的东西。现在,我想从HTTP API加载许多文章。我是否应该在类中的Article类方法中这样做,例如+(void)loadAllArticlesWithBlock:…(当然,它会使用一些HTTP管理器类来实现这一点

这个问题与架构更相关,但我将“用”一种具体的编程语言——objective c——因为这种语言也使用类方法,而不仅仅是实例方法(我不确定它在其他语言中是如何使用的)。另外,我正在使用MVC设计模式


因此,让我们来看一篇模型类文章。该类将具有诸如标题、描述、文本等属性。。。只是一些基本的东西。现在,我想从HTTP API加载许多文章。我是否应该在类中的Article类方法中这样做,例如
+(void)loadAllArticlesWithBlock:…
(当然,它会使用一些HTTP管理器类来实现这一点,这不是这里的重点),,或者模型类是否应该只包含与单个文章相关的内容,并且应该允许控制器加载所有文章?

我认为这是两个独立的问题:

  • 应该将
    文章
    类服务器作为
    文章
    对象的类,以及
  • 文章
    工厂是否应放置在MVC的模型或控制器中
第一个问题的答案是“可能不是”:您最好为一个项目工厂定义一个协议,并按照该协议编程。通过HTTP API提供文章的实现将在运行时插入以供生产使用。这就为测试提供了一个不同的工厂——比如,从文件中加载文章的工厂

第二个问题的答案是,承载工厂方法的对象应该附加到模型,而该对象的所有用途都来自控制器