呈现模型与被动视图

2024-04-27

我想知道上述两种模式之间的区别。当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时,那么我认为这些模式非常相似。

两者都将事件委托给演示模型/演示者。演示模型和演示者命令域模型,并且也观察域模型。当发生更改时,它们都与视图同步(因为表示模型中的同步代码位于表示模型中)。

在我看来,不同之处在于,表示模型是视图的抽象形式。它描述了视图的状态和行为。所以它具有所有视图状态信息的属性。并且此信息通过同步代码同步。 在被动视图中,呈现者不一定被视为视图的抽象形式。因此演示者不一定具有表示视图状态的属性。因此演示者不会“同步”状态(控件和演示者本身的属性)。相反,他只是将域数据(在更改时)“复制”到控件。 因此,本质上的区别在于表示模型提供的视图的抽象,而在被动视图中,表示者可以被视为领域数据的数据映射器。

到目前为止还可以吗?还是我错过了一些重要的事情?

谢谢并致以最诚挚的问候 帕特里克


我的理解是被动视图是 MVP 的变体,而演示模型是一个单独的模式。

正如您所强调的,表示模型具有视图的抽象表示,后来在 MVVM 中称为 ViewModel。 MVP 没有视图的有状态表示,演示者相应地调用视图。被动视图意味着视图调用通常不知道任何领域概念,因此很大程度上是原始类型。而监督控制器变体允许视图传递它可以解释的域概念。

正如我所说,这只是我的理解。我很高兴得到纠正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

呈现模型与被动视图 的相关文章

  • 如何将一个窗格连接到另一个窗格

    如何将输出连接到paneWithList PaneWithList其上有一个监听器JList以便将所选行输出到控制台 我怎样才能将该输出定向到JTextPane关于输出 Could PaneWithList触发一个事件Main拿起 会属性更
  • Qt Designer 与手动编码

    每次我使用图形工具包开始一个项目时 第一个冲突就会发生在如何处理视觉设计和小部件布局的决定上 图形工具还是手动编码 这是一个非常棘手 主观的问题 因为大多数人会根据个人喜好来决定 它还很大程度上取决于图形工具的质量 在这种情况下 我想只关注
  • 是否有用于序列化和反序列化各种格式的对象层次结构的模式?

    给定一个复杂的对象层次结构 幸运的是它不包含循环引用 如何实现支持各种格式的序列化 我不是来讨论实际实施的 相反 我正在寻找可能派上用场的设计模式的提示 更准确地说 我正在使用 Ruby 我想解析 XML 和 JSON 数据以构建复杂的对象
  • 在 Codeigniter 中使用/嵌入 Ember js

    我即将开始开发一个 Web 应用程序 使用 Ember js 作为前端技术 使用 Codeigniter 作为后端 我遇到的问题是如何在 codeigniter 中嵌入或使用 ember js 可以通过 Web 服务从 codeignite
  • Java - SwingWorker - 我们可以从其他 SwingWorker 调用一个 SwingWorker 而不是 EDT

    我有一个SwingWorker如下 public class MainWorker extends SwingWorker Void MyObject 我调用了上面的Swing Worker来自东部夏令时间 MainWorker mainW
  • Javascript 中繁重计算的最佳实践?

    我正在处理客户端脚本 需要进行繁重的计算 例如将大量对象推送到数组中 这会导致 JavaScript 停止响应并且浏览器挂起并发出警报 是否有任何最佳实践或设计模式来处理这些计算 我搜索并找到许多不同的方法来处理这些情况 但解决方案很难实现
  • QuickBlox:arm64 架构的未定义符号

    我使用 Xcode 6 4 并使用 cocoapods 安装了 QuickBlox 框架 使用该框架后 我收到一些错误 例如 Undefined symbols for architecture arm64 OBJC CLASS QBSet
  • 如何使用 Tkinter 创建自动更新的 GUI?

    from Tkinter import import time Tkinter stuff class App object def init self self root Tk self labeltitle Label root tex
  • SOA架构数据访问

    在我的 SOA 架构中 我有几个世界碳基金服务 我的所有服务都需要访问数据库 我应该创建一个专门的 WCF 服务来负责所有数据库访问吗 或者 如果我的每个服务都有自己的数据库访问权限 可以吗 在一个版本中 我在一项服务中只实例化了一个实体层
  • Windows 应用程序事实上的标准键盘快捷键列表?

    假设我正在为 Windows 开发一个新的桌面应用程序 是否有我可以查阅的所有 Windows 应用程序都应支持的键盘快捷键列表 来自 Microsoft 或第三方 注意 当我在这里说 所有 Windows 应用程序 时 我的真正意思是 特
  • List、IList、IEnumerable、IQueryable、ICollection,哪个返回类型最灵活?

    我之前已经在这里看到过这个问题 但我不满意我理解的完整后果 问题是使用 linq to sql 返回的数据层应该使用什么返回类型以获得最大的灵活性和查询能力 这是我读过 发现的 IEnumerable 是有限的 只允许向前读操作 IEnum
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • 我对 MVVM 模式有一些疑问

    我叫 Jes s 来自西班牙 是一名 NET 开发人员 几天前我刚刚发现了这个伟大的网络 我有一些关于 MVVM 模式的问题 如果您能回答我 我将很高兴 我三个月前开始使用 WPF 并且学习了 MVP 模式 MVP 非常好 因为您可以很好地
  • 您的 Web 服务版本控制最佳实践是什么?

    我们有 2 个独立的产品 需要通过 Web 服务相互通信 支持 API 版本控制的最佳实践是什么 I have 本文 http www ibm com developerworks webservices library ws versio
  • 如何将图像放在 UIButton 中文本的右侧?

    如果可以避免的话 我不想使用子视图 我想要一个UIButton其中包含背景图像 文本和图像 现在 当我这样做时 图像位于文本的左侧 背景图像 文本和图像都有不同的高亮状态 最简单的解决方案 iOS 10 及更高版本 Swift button
  • C 中的 N 依赖注入 - 比链接器定义的数组更好的方法?

    Given a 库模块 在下文中称为Runner 它作为可重复使用的组件 无需重新编译 即静态链接库 中应用程序分区架构的 而不是主分区 请注意 它仅包含main 出于演示目的 Given a set 顺序无关 调用的其他模块 对象Call
  • 在关系数据库中存储树结构的已知方法有哪些? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • NHibernate 中具有不同类型答案的问题

    我正在尝试找到一个问卷问题的简洁解决方案 假设我有一个Questionnaire类有一个集合Answers e g public class Questionnaire public virtual ISet
  • 发布者-订阅者与观察者[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

    我避免在 net arch n 层架构上编写看起来像是另一个线程的内容 但请耐心等待 希望我和其他人一样 在选择用于企业应用程序的架构时 考虑到当今的趋势和新兴技术 仍然没有 100 满意或不清楚应采取的最佳方法 我想我正在寻求大众社区对方

随机推荐

  • 我应该在 mongodb 中对布尔标志使用稀疏索引吗?

    我有一个布尔标志 finished 我是不是该 A index finished 1 B index finished 1 sparse true C use flag unfinished instead to query by that
  • 使用 ASP.Net Core 中间件启动后台任务

    我试图在 ASP Net Core 中加载页面时运行异步任务 即 我希望任务在用户路由到页面后立即运行 但要在任务完成之前显示页面 看起来 使用 ASP Net core 您可以使用中间件来执行此类任务 所以我尝试添加以下内容Startup
  • iOS9,如果使用systemLayoutSizeFittingSize,为什么在dequeueReusableCellWithIdentifier:forIndexPath中调用自定义UITableViewCell的layoutSubviews

    a 更具体的描述我的问题 在iOS9中 为什么layoutSubviews我的自定义 UITableViewCell 的调用方式是dequeueReusableCellWithIdentifier forIndexPath if syste
  • 如何在 Ionic 中创建具有 + 和 - 按钮的输入框

    如何创建一个带有 和 按钮的输入框 单击哪个用户可以更改所选产品的数量 如下屏幕 这是 Ionic 2 的一个快速组合的示例 如果您使用 Ionic 1 您应该能够很容易地适应它 您只需要几个控制器 类函数来递增和递减 然后通过按钮调用它们
  • EF6/SQL Server Compact,基于代码的配置

    我正在尝试将我的 EF6 配置从myexe exe config编码作为解决方法empty DbProviderFactories node in machine config 问题 此处描述 https stackoverflow com
  • 从 Excel 与 VBA 调用时,VBA UDF 给出不同的答案

    以下 VBA 函数计算给定范围内包含公式的单元格数量 从 VBA 子程序调用时它可以正常工作 从 Excel 调用时 它返回区域中的单元格总数 来自 Excel 的调用是 CountFormulas A1 C7 即使该范围内只有两个带有公式
  • jQuery 数据表隐藏头部

    如果表没有任何数据 我想隐藏数据表标题 oTable topics showTopics dataTable bLengthChange false bStateSave true iDisplayLength 12 bScrollColl
  • 使用api在github中生成个人访问令牌

    有什么方法可以通过我的用户名和密码登录我的 github 帐户并使用 api 生成个人访问令牌吗 UPDATE 根据这个博客文章 https developer github com changes 2020 02 14 deprecati
  • 20个问题AI算法是如何运作的?

    包含 20 个问题的简单在线游戏 由极其准确的人工智能提供支持 他们怎么猜得这么好 您可以将其视为二分搜索算法 在每次迭代中 我们都会提出一个问题 这应该消除大约一半的可能的单词选择 如果总共有 N 个单词 那么我们可以期望在 log2 N
  • 从redis中检索大数据集

    一台服务器上的应用程序查询另一台服务器上运行的 Redis 查询的结果数据集约为 250kzrangebyscore objects locations inf inf这在应用程序服务器上似乎需要 40 秒 当使用命令执行时redis cl
  • 使用负等式表达式进行 resharper 自定义模式替换

    我在 resharper 中有一条规则来查找对 Nullable HasValue 的调用 T foo if foo HasValue And it offers to replace with a comparison directly
  • 当所有子记录满足条件时仅选择父记录

    我有两个表 A 和 B 当所有子项 表 B 中 满足条件时 我只需要父项 A 的行 如果 B 中的一行不符合条件 那么我不需要父 A 的行 我想我需要在这里使用存在 但不展示如何使用 以下是数据表 Table A Primary Key L
  • Dao 和服务接口的需求

    我是Spring Mvc的新手 在很多教程中 我发现有一个像这样的Dao接口 public interface StudentDAO public List
  • 将 Selenium HTML 测试自动转换为 JUnit 的方法?

    我在 Mac 10 6 6 上使用 Selenium IDE 1 0 10 for Firefox 我们的 QA 部门已经为 Selenium 创建了一些 HTML 测试 我需要将其转换为 Junit 在 IDE 中 我可以通过转到 文件
  • 使用 javascript/jquery 仅选择特定元素后面的文本

    如下面的代码片段所示 我有多个文本 div 其中有粗体部分 然后是换行符 然后是一段文本 我可以 find 粗体部分 但如何使用 javascript jquery 只获取粗体部分后面换行符后面的文本部分 div class thecont
  • 如何为 Android 应用实施 Google Play 许可? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话
  • Hadoop:处理大型序列化对象

    我正在开发一个应用程序来使用 Hadoop 框架处理 和合并 几个大型 java 序列化对象 顺序 GB 大小 Hadoop 存储将文件块分布在不同的主机上 但由于反序列化需要所有块都存在于单个主机上 因此它会极大地影响性能 我该如何处理这
  • 如何解析 iPhone 中本地存储的 XML 文件?

    如何解析 iPhone 中本地存储的 XML 文件 请使用代码片段帮我解决这个问题 我已经使用了 NSXMLParser 并且实现了它 我的资源中有 r xml 文件 我刚刚解析标题并使用 NSXMLParser 显示 r xml
  • 如何使弹性盒与需要截断文本的嵌套子项一起使用?

    要让 flex child 截断带有省略号的文本 可以给父级一个 min with 0 在我的项目中 子组件嵌套在几乎 10 个不同的弹性容器中 我是否需要给所有父母一个 min width 0 或者有更好的解决方法吗 sandbox ht
  • 呈现模型与被动视图

    我想知道上述两种模式之间的区别 当您考虑到您需要在表示模型模式中同步代码并且该代码位于表示模型本身中时 那么我认为这些模式非常相似 两者都将事件委托给演示模型 演示者 演示模型和演示者命令域模型 并且也观察域模型 当发生更改时 它们都与视图