gpt4 book ai didi

model-view-controller - MVC 架构。模型中有什么?

转载 作者:行者123 更新时间:2023-12-04 08:37:46 29 4
gpt4 key购买 nike

我是 MVC 的新手,但我已经看到它的好处和优势。但是,我有一个(可能很容易回答)设计问题:

我一直在思考模型并讨论构建模型的正确方法。在我看来,有几个选项:

1) 模型和表结构具有一对一的关系...这意味着几乎每个表都有对应的模型。模型类具有与表列对应的属性,并具有以任何必要方式操作表中数据所需的任何方法(如 getter 和 setter)。这似乎是通用选项,我想我会让 Controller 根据需要调用模型来执行任何必要的业务功能。

2) 模型与业务逻辑而非数据的操作更紧密地联系在一起:例如,如果在前端删除某个对象会影响多个表,则模型会“建模”此行为并进行交互有几个表并执行必要的功能。然后, Controller 只需为所需的任何业务行为调用单个模型。这不太通用,因为模型耦合得更紧密..但似乎实现起来更快。

3) 介于前两个选项之间。或者我可能完全忽略了重点。

希望这是有道理的!如果我没有完全忽略这一点,我倾向于认为选项 (1) 更好。有什么想法吗?

编辑:这无关紧要,但我计划使用 Codeigniter PHP MVC 框架。

最佳答案

两者都是有效的实现,并且根据您的需要,可以很好地工作。

您的#1 本质上是在描述 Active Record pattern ,它被 SubSonic、CaSTLe 和许多其他 ORM 实现使用。

您的#2 本质上是在描述 Entity Framework /Hibernate/LightSpeed 方法,您在其中处理在概念上与您的域而不是表更相关的对象。它们实际上包含其他域对象引用,而不是包含外键 ID 属性的对象,然后在访问时实例化这些引用。

两种方式都很棒。 Active Record 方法通常对初学者来说更直观,并且潜在的陷阱更少。 EF 风格可以节省大量基础级编码并直接在代码中处理 FK。

编辑:明确地说,您在这两种情况下所描述的都是数据访问层相关的,而不是严格的模型相关的。然而实际上你已经非常接近了,因为大多数模型倾向于简单地表示一种或多种这些类型的对象。

关于model-view-controller - MVC 架构。模型中有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133068/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com