【问题标题】:What kind of web MVC pattern is this? [closed]这是一种什么样的 Web MVC 模式? [关闭]
【发布时间】:2012-12-08 13:44:00
【问题描述】:

我想知道下图是哪种 MVC 模式。我们正在根据这种模式使用 ColdFusion 开发一个 Web 应用程序,到目前为止进展顺利。但它甚至是某种 MVC 吗?

前端页面通常包括:
- 包括相应的网关(每个模型组件都有自己的具有专用功能的网关)
- 使用提供的 GATEWAY 结构(包含表示所需数据的组件、数组、结构等)来呈现输出
- 简单的流控制(if/else/loops)来遍历提供的数据或区分视图状态
- 如果需要:构建表单(发布到同一页面)并根据 GATEWAY 规范命名它们的字段名称

GATEWAY 文件(始终与前端页面分开)验证请求(通常是 POST 数据)并负责数据检索(即选择/插入/更新数据库)。通常 GATEWAY 请求数据而不考虑操作(评估运行时数据,如 SESSION)。所有操作都是故障安全的,因此结果结构中要么有数据,要么数据为空。无论哪种方式,结构中的两个数组(成功、错误)都提供了处理期间所有执行操作的日志,以便在前端页面上做出相应的反应。大多数数据是作为组件(对象)提供的,但总而言之,它不是一种完全面向对象的方法。它们唯一的共同点是:它们都描述了输入参数(GET、POST、Session、Cookie)和传出参数,例如(RESTful)Web 服务。

我对所使用的模式提出了很多想法,但我无法在所有方面都匹配。

【问题讨论】:

  • 这似乎更像是一个哲学问题而不是编程问题?真的有您正在寻找的具体答案吗?
  • 我的一位同事对这种方法提出了质疑,并建议使用完全面向对象的 MVC(分为三个独立的组件,而不是同时处理模型和控制器的基于文件的模块)。我的老板让我澄清这种模式,我不确定我是否可以通过调用“MVC in a different way”方法来证明它的合理性。我认为有更多经验的人可能会看到明显的相似之处。
  • 你不会根据它的优点而不是它的名称来证明一个概念的合理性吗?
  • 控制器和模型应该分开 - 否则根本就不是 MVC。
  • 您是否完全采用 OO 并不重要,但您应该做的是调查 FW/1ColdBox - 选择其中任何一个框架并使用它们来构建您的应用程序。 (不使用公认框架的唯一原因是,如果您可以解释并同意您的同事的意见,为什么您的特定应用程序需要不同/更高级的结构,而这些框架之一是不可能的——它很可能不会。 )

标签: web-services model-view-controller design-patterns web-applications coldfusion


【解决方案1】:

在我看来,MVC 提供的最重要的东西是视图和模型之间的分离。通过这样做,您可以完全替换视图或模型,而无需更改另一个。事实上,控制器的主要目的是充当两者之间的中间人。需要切换数据库服务器,你不应该改变你的视图,甚至你的控制器。需要创建一个新视图,或者替换你拥有的视图,你不应该真的弄乱你的模型或控制器。

就你将要创建的这个拟议框架问自己这些问题,答案应该很容易。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 2011-08-05
    • 2018-06-23
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多