模型 class 是否应该包含加载其类型的所有 objects 的方法?
Should model class contain method for loading all objects of its type?
这个问题与体系结构更相关,但我将讨论 "in" 一种具体的编程语言 - objective c - 因为这种语言还使用 class 方法,而不仅仅是实例方法(我不确定它在其他语言中的表现如何)。另外,我正在使用 MVC 设计模式。
所以,让我们有一个模型 class 文章。此 class 将具有 标题、说明、文本 等属性...只是基本内容。现在,我想从 HTTP API 加载很多文章。我是否应该在 class 方法中的文章 class 中执行此操作,例如 +(void)loadAllArticlesWithBlock:...
(当然,它会为此使用一些 HTTP 管理器 class,这不是这里的重点) , 或者模型 class 应该只包含与单个文章相关的东西并且应该让控制器加载所有文章?
我认为这是两个不同的问题:
- 应该
Article
class 服务器作为 Article
对象的 factory,并且
- 工厂应该
Article
放在模型中还是放在MVC的控制器中
第一个问题的答案是"probably not":您最好为文章工厂定义一个协议,然后针对该协议进行编程。通过 HTTP API 提供文章的实现将在运行时插入以供生产使用。这开启了提供不同工厂进行测试的可能性 - 例如,从文件加载文章的工厂。
第二个问题的答案是承载工厂方法的对象应该附加到模型,而该对象的所有使用都将来自控制器。
这个问题与体系结构更相关,但我将讨论 "in" 一种具体的编程语言 - objective c - 因为这种语言还使用 class 方法,而不仅仅是实例方法(我不确定它在其他语言中的表现如何)。另外,我正在使用 MVC 设计模式。
所以,让我们有一个模型 class 文章。此 class 将具有 标题、说明、文本 等属性...只是基本内容。现在,我想从 HTTP API 加载很多文章。我是否应该在 class 方法中的文章 class 中执行此操作,例如 +(void)loadAllArticlesWithBlock:...
(当然,它会为此使用一些 HTTP 管理器 class,这不是这里的重点) , 或者模型 class 应该只包含与单个文章相关的东西并且应该让控制器加载所有文章?
我认为这是两个不同的问题:
- 应该
Article
class 服务器作为Article
对象的 factory,并且 - 工厂应该
Article
放在模型中还是放在MVC的控制器中
第一个问题的答案是"probably not":您最好为文章工厂定义一个协议,然后针对该协议进行编程。通过 HTTP API 提供文章的实现将在运行时插入以供生产使用。这开启了提供不同工厂进行测试的可能性 - 例如,从文件加载文章的工厂。
第二个问题的答案是承载工厂方法的对象应该附加到模型,而该对象的所有使用都将来自控制器。