MVC vs. Active Record vs. Factory [关闭]

Posted

技术标签:

【中文标题】MVC vs. Active Record vs. Factory [关闭]【英文标题】:MVC vs. Active Record vs. Factory [closed] 【发布时间】:2016-07-21 07:18:41 【问题描述】:

活动记录模式是一种访问数据库中数据的方法。数据库表或视图被包装到一个类中。因此,对象实例与表中的单行相关联。创建对象后,保存时会在表中添加新行。

MVC 是一个使用 MVC(模型视图控制器)设计构建 Web 应用程序的框架:模型代表应用程序核心(例如数据库记录列表)。视图显示数据(数据库记录)。

在工厂模式中,我们创建对象而不将创建逻辑暴露给客户端,并使用通用接口引用新创建的对象。

与 Active Record 相比,使用 MVC 有什么好处?

在我的网站中,我使用了 Active Record 和 Factory 模式的组合。对我来说,使用这些更简单更快,因为我只需要编写一些函数。另外,我不需要视图、模型或其他东西。我的意思是,在我看来,我越受规则约束,设计就越复杂。

但如果我说的是对的,为什么使用 MVC 的框架太多了?

【问题讨论】:

【参考方案1】:

这三个完全不相关。

MVC 是一种可用于各种 UI 的软件架构模式。此模式用于定义应用程序的内部架构。模型不是映射到数据库的对象,而是 View Model,用于将数据从 Domain 传送到 UI。

Active Record 是一种用于持久性的集成模式。它解决了如何将对象映射到数据库的问题(还有其他模式也可以这样做)。

Factory 是一种用于创建对象的设计模式。它抽象了实例化对象的复杂性。

所有这 3 种模式都有***页面来解释它们的工作原理。如果您想了解更多信息,可以阅读(按顺序,每本书都解释了每种模式)

面向模式的软件架构,模式系统:第 1 卷 企业集成模式 设计模式:可重用的面向对象软件的要素

关于您的最后一个问题:为什么有这么多 MVC 框架?因为都有痛点,有些人认为自己可以做一个无痛的MVC框架(这就像试图找到一个独角兽)

【讨论】:

以上是关于MVC vs. Active Record vs. Factory [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

persisted? vs new_record?

Plain Core Data vs Core Data + Magical Record

vs2015怎么新建一个MVC空项目

Active FTP vs. Passive FTP, a Definitive Explanation

MVC vs. MVP vs. MVVM

MVC vs MVP vs MVVM