前段时间我在这里询问了一些关于理解 MVC 的帮助,因为我对这个话题很陌生。我以为我对它有一个不错的理解,这在我最近写的一篇关于这个主题的博客文章中有记录。我的理解基本上可以归结为:
控制器:确定需要做什么来满足请求,并根据需要利用它需要收集/修改的任何模型。它基本上是给定流程的管理者。
视图:仅演示。一旦控制器收集到它需要的东西,它就会创建一个特定类型的视图,将信息传递给它,然后说“不管你怎么做都给用户展示”。
模型:应用程序的行为。当控制器要求它提取或修改某些东西时,它知道如何去做。它还知道触发其他模型来执行相关任务(据我了解,当模型尝试在 StackOverflow 上“为某事投票”时,该模型知道询问是否也应该因此授予徽章。控制器不需要关心)。
我的问题是,假设所有这些或多或少是准确的,实体对象是从哪里来的?模型和实体是同一回事,每个对象都知道如何保存自己的数据,还是实体是独立存在并在整个应用程序中使用的独立概念?
我的钱是后者,因为这将允许模型独立运行,而所有三层(模型、视图和控制器)都可以根据需要利用实体来传递数据。此外,对象和数据库持久性似乎是应该分开的问题。
老实说,我对 MVC 的了解越多,我就越困惑。我已经准备好接受核心概念(将表示与逻辑分开)并以任何感觉正确的方式运行它,而不必太担心“MVC”标签。