gpt4 book ai didi

model-view-controller - WinJS:MVVM、MVP 或 MVC 更适合它吗?

转载 作者:行者123 更新时间:2023-12-03 10:16:27 26 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center寻求指导。




9年前关闭。




我正在使用 Javascript (WinJS) 和 HTML 构建一个简单的 Windows 8 LOB 应用程序。在应用程序中,我不希望有任何第三方依赖项。在决定应用程序结构时,我正在讨论哪种模式最适合技术和 WinJS 框架。

我对使用这些模式的主要优点/缺点的初步想法如下。

MVVM

MVVM

  • 优点:ViewModel 中业务逻辑的清晰分离,使 BL 的(单元)测试变得容易
  • 缺点:WinJS 只有开箱即用的一次性和单向数据绑定(bind),没有双向数据绑定(bind)和命令(绑定(bind)到事件)。这些必须以自定义方式实现(如果想要在 View 上坚持主要是声明性语法,这可能会变得很棘手)。

  • MVP

    MVP
  • 优点:presenter 仍然包含所有业务逻辑以及 View 逻辑,并且可以自行(单元)测试。这种方法不需要数据绑定(bind)。
  • 缺点:View 和 Presenter 代码都将比 MVVM 更冗长,因为它们现在必须在状态更改时相互通知。 View 需要将事件转发给 Presenter,Presenter 必须在其状态发生变化时更新 View。

  • MVC

    MVC
  • 优点: View 非常轻量级,这种方法也不需要数据绑定(bind)。
  • 缺点: Controller 必须注册和处理输入事件(例如键盘和鼠标事件)以及包含业务逻辑。与 MVVM 中的 ViewModel 和 MVP 中的 Presenter 相比,这个类将是最臃肿且更难(单元)测试的。

  • 基于这些,我会选择 MVP 来构建这个应用程序。你同意还是反对?

    最佳答案

    我会发布一些东西,因为我喜欢你解释不同设计模式和良好图形的方式(顺便说一句,你有这些的来源吗?你应该包括它)

    MVVM 的缺点是双向更新必须以自定义方式实现。但是,对于 MVP 范式,您似乎无论如何都必须以自定义方式执行此操作。如果您使用 MVP,您是否根本不使用任何数据绑定(bind)?我想说,使用 MVVM 并找出解决 WinJS 问题的方法。我不熟悉 WinJS,但似乎您可以将其包装在自定义对象/属性中并触发更改的事件以以某种方式处理数据绑定(bind)。

    关于model-view-controller - WinJS:MVVM、MVP 或 MVC 更适合它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13127540/

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