MVP 和 GWT 小部件之间的通信

2024-04-23

如果我将 MVP 模式与 GWT 结合使用(如 2009 年 Google I/O 中的 GWT 架构最佳实践讨论),但已将信息分散到多个小部件中,那么应该如何填充值对象?

假设我有一个 EditPersonView/Presenter、一个 EditPetView/Presenter 和一个 EditAddressView/Presenter,最后两个是作为 EditPersonView 中面板的一部分的小部件。有了这些,我有以下课程:

class PersonDetails {
    private PetDetails pet;
    private AddressDetails addressDetails;

    // ...
}

PetDetails 和 AddressDetails 实例变量在其对应的演示者中进行管理。当用户单击 EditPersonView 中的“保存”按钮时,小部件之间应该如何进行通信,以便 PersonDetails 填充来自其子小部件的信息?


如果你看一下第 42 页推介会 http://code.google.com/events/io/2009/sessions/GoogleWebToolkitBestPractices.html作者:Ray Ryan,来自 Google IO 2009,您应该找到问题的解决方案。您使用“事件总线”(共享实例HandlerManager)并解雇您的定制PetDetailsChangedEvent事件并从您的子窗口小部件监听该事件(第 45 页)。另外,请记住,虽然解耦等很棒,但some耦合并不是一件坏事,实际上可能是一个比试图强制所有东西松散耦合更好的解决方案 - RR 自己在演讲中这么说:)

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

MVP 和 GWT 小部件之间的通信 的相关文章

  • 仅使用公钥在 HD 钱包中生成以太坊地址 (bitcoinj/web3j)

    我尝试为使用 bitcoinj 库实现的 HD 钱包密钥生成以太坊地址 但我感到困惑 DeterministicSeed seed new DeterministicSeed some seed code here null 1409478
  • 解析 (yyyy-MM-dd) 格式的字符串日期

    我有一个 2013 09 18 形式的字符串 我想将其转换为 java util Date 我正在做这个 SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd Date converted
  • 始终等待页面加载到 PageObjects 上

    因此 当出现问题时 我只是创建了一个简单的 selenium JBehave 代码 我将首先发布简化的代码 然后稍后解释我的问题是什么 所以这里我们有一个简单的 AbstractClass 它将在我的 PageObjects 上继承 此类仅
  • Android:TelephonyManager 类

    我不明白为什么 API 文档中这么写TelephonyManager类是public 但是当我尝试创建一个实例时 它说它不是公共类 并且无法从包中访问 我看到它也说使用Context getSystemService Context TEL
  • 在 libgdx 中渲染 box2d

    我有一个使用 FitViewport 的大小为 800x480 的游戏世界 并且最初使用像素渲染 box2d 实体 固定装置 因此所有物理效果都显得浮动且缓慢 查看文档后 我意识到 box2d 使用度量单位 因此我将 box2d 位置和大小
  • SSLContext 初始化

    我正在看JSSE参考指南 我需要获取一个实例SSLContext为了创建一个SSLEngine 所以我可以使用它Netty以启用安全性 获取实例SSLContext I use SSLContext getInstance 我看到该方法被重
  • 如何在java中从包含.0的浮点数中删除小数部分

    我只想删除包含的浮点数的小数部分 0 所有其他数字都是可以接受的 例如 I P 1 0 2 2 88 0 3 56666 4 1 45 00 99 560 O P 1 2 2 88 3 567 4 1 45 99 560 有什么方法可以做到
  • 如何在 QueryDSL 中选择文字

    我目前正在开发一个使用 queryDSL 和 hibernate 的项目 其中它需要一个选择文字 按照发布的示例here https stackoverflow com questions 18691317 querydsl how to
  • java.lang.ClassNotFoundException: org.jboss.logging.Logger

    我有一个奇怪的问题 我有一个JMS https en wiktionary org wiki JMS客户端应用程序和MDB https en wikipedia org wiki Enterprise JavaBeans Message d
  • Java 声音可视化器

    我正在尝试制作一个java声音可视化工具 但我完全不知道如何在实时处理音频后立即从提取的音频中获取字节 我可以将程序与 wav 文件同步 但这不是我想要做的 我想用程序生成声音 然后播放它 而不将其保存在任何地方 谢谢您的帮助 本文可以帮助
  • 不使用 length() 方法的字符串长度[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在不使用字符串的情况下找到字符串的长度length String类的方法 str toCharArray length应该管用 或者怎么
  • java中永远不会出现的异常

    我为点和向量编写一个类 我想用它们来计算向量的点和范数 这些是点类和向量类 public class Point public float x y public class MyVector public Point start end 我
  • Jersey 和 Spring 中的全局异常处理?

    我正在使用 Jersey 和 Spring 3 2 以及 Open CMIS 开发 RESTful Web 服务 我没有使用 Spring 的 MVC 模式 它只是 Spring IOC 和 Jersey SpringServlet 控制器
  • IntelliJ - 无效源版本:17

    我已经在 IntelliJ 中使用 Gradle 创建了一个使用 Java 17 的新 Java 项目 运行我的应用程序时出现错误Cause error invalid source release 17 我的设置 我已经安装了openjd
  • 为什么replaceAll在这行代码中不起作用? [复制]

    这个问题在这里已经有答案了 String weatherLocation weatherLoc 1 toString weatherLocation replaceAll how weatherLocation replaceAll wea
  • 带等待/通知的同步块与不带等待/通知的同步块之间的区别?

    如果我只是使用synchronized 不是wait notify方法 它仍然是线程安全的吗 有什么不同 Using synchronized使方法 块一次只能由一个线程访问 所以 是的 它是线程安全的 这两个概念是结合在一起的 而不是相互
  • “强制更新快照/版本” - 这是什么意思

    在 Maven 项目中 选择 更新项目 时 有一个名为 强制更新快照 版本 的选项 它有什么作用 强制更新快照 版本 就像运行以下命令 mvn U install U 也可以用作 update snapshot 看here http boo
  • java mysql 准备好的语句

    我正在尝试使用 java 向数据库中进行简单的插入 它告诉我我的 sql 语法已关闭 但是 当我复制打印出来的字符串并将其放入 phpmyadmin 中的 sql 命令中时 它会正确执行该命令 并且我似乎无法弄清楚 java 中的字符串查询
  • 空检查时可能未初始化错误

    我正在检查变量是否已初始化 但此时 netbeans 给了我variable reader might not have been initialized警告 我该如何解决 抑制这个问题 这是我的代码 摘要 final Reader rea
  • java中什么是静态接口?

    我正在阅读Map Entry界面 当我注意到它是一个static界面 我不太明白什么是静态接口 它与常规接口有什么不同 public static interface Map Entry

随机推荐

  • wxGrid 在右侧显示大的空白边框

    默认情况下 wxGrid 在最后一列之后的右侧显示一个小的 10 像素 空白边框 调用 SetMargins 对其没有任何影响 这很烦人 但我可以忍受 但是 如果我将行标签宽度设置为零 则空白边框会变得更大 如果我只有一列 效果会很糟糕 看
  • 送达收据请求不适用于 XMPP Android (aSmack)

    我正在使用 OpenFire 和 aSmack 我似乎无法让 送货收据 正常工作 创建连接时我执行以下操作 create connection connection login username password DeliveryRecei
  • c++ 打开文件的问题

    必须是一个简单的答案 但我不知所措 这是返回错误的代码 我尝试过带或不带起始斜杠 我不知道完整路径 我希望它是相对于exe的 这就是相对路径 我试图逃避斜线 我的问题是当文件存在时我收到 打开文件时出错 为什么它失败了 ifstream m
  • 如何编写恒定时间函数将最高有效位复制到所有位

    我想用 C 语言编写一个函数 它采用以下的 MSBuint8 t 如果已设置 则返回0xFF如果不0x00 简而言之 它返回一个整数 其中所有位都设置为与 MSB 相同的值 但我想以完全恒定的时间方式来完成它 没有分支 没有数组偏移 只是数
  • jq - 过滤器数组不包含

    我正在使用应用程序 jq 从命令行过滤 json 文件 https stedolan github io jq https stedolan github io jq 这是一个代表问题的糟糕例子 如何过滤该集合以包含所有非红色或非圆形的水果
  • 如何循环遍历文件来获取数据?

    我正在尝试进行基本登录并注册 C 控制台应用程序 但是 我需要循环遍历我的文件以查看用户输入的用户名和密码在登录时是否匹配 如果用户输入用户名和密码 我希望我的代码遍历我的文件以检查它是否是现有的用户名和密码 这是我的代码 Serializ
  • Pandas:将列转换为列表

    我有一个数据框 date member id val 2016 06 01 2377264 14 2016 06 01 289719 6 2016 06 02 289719 12 2016 06 02 2377264 1 2016 06 0
  • 如何更改 ng-repeat 中单个元素的 ng-click 行为?

    我正在重构一个用角度编写的表格 目前 ng repeat 用于创建多个表行 其中任何行在单击时都会重定向到给定的 ui sref tbody tr class tablebox content td class name user name
  • JAVA JNI C 调试器

    是否有任何调试器可以帮助调试 Java JNI 程序以及 C 库 我应该能够在Java中从static void main开始调试程序 并继续调试并在本机c函数中放置断点 然后在控制权从C转移到Java后继续在Java中调试 Java 虚拟
  • 在运行时执行 C# 或 VB.NET 代码

    最近在 Codility com 上花了一些时间 我突然想到了这个问题 它们如何执行您创建的代码 特别是与 C 和 VB NET 有关的代码 我基本上想知道的是 如何在表单上的文本框中输入一些代码 然后运行该代码 如果没有第三方工具 这可能
  • 为 Windows 开发计划任务

    我必须使用 C net 开发一个必须每天运行一次的应用程序 它最多只运行一分钟 因此开发 Windows 服务有点大材小用 计划任务是合适的方法 但是 我对应用程序如何传达其结果有一些疑问 如何向任务调度程序指示任务失败 这是通过程序的退出
  • 查找包含“inf”或“nan”的项目的索引

    以下是一个示例1 item在我的清单中 array 1 2 3 43 83 92 12 54 93 23 94 83 23 inf inf inf inf inf 83 33 33 83 13 83 83 nan 83 73 43 43 4
  • 如何避免实体框架 TPT 继承中的多态行为,以便有效地查询基类型

    Overview 我首先使用实体 框架 4 3 代码和流畅的界面来设置我的 DbContext 我有一个基地Item具有继承此类型的其他类型的类 例如Event BlogPost 论坛主题 WikiPage等等 这些继承的类型与我认为实体框
  • React-relay 嵌套突变后未获取有效负载

    这是一个后续问题这个答案 https stackoverflow com a 34776023 2030321早些时候在 SO 上发布了有关反应中继突变警告的文章 在这种情况下 您需要做的是将 FeatureLabelNameMutatio
  • 如何在 for 循环中安全地从数组中删除项目?

    完全透露 这是一个家庭作业问题 它应该有一个 Circle 类型的私有属性 一系列圆圈 该方法应删除半径大于的任何圆 最小要求 并且小于最大要求 看来我应该使用removeAtIndex 删除不满足循环中确定的条件的数组项 然而 许多人之前
  • Android 使用广播检查互联网连接

    我想实现一个广播接收器来检查互联网连接 如果连接不存在 只需完成 它 但我还是搞乱了上下文 请检查我下面的代码 This broadcast receiver is awoken after boot and registers the s
  • MongoDB 中的多对多更新无需事务

    我有两个具有多对多关系的集合 我想在两个文档中存储链接的 ObjectId 数组 以便我可以获取文档 A 并快速检索所有链接的文档 B 反之亦然 创建此链接分为两个步骤 将文档 A 的 ObjectId 添加到文档 B 将文档 B 的 Ob
  • 如何使用生物指纹识别器开发指纹数据库

    我购买了一个简单的生物识别指纹读取器 通常用于通过 USB 连接确保笔记本电脑的安全 它只是被称为生物指纹识别器 而不是品牌 它附带了为笔记本电脑创建安全性的软件 而且效果很好 然而 我对此有不同的想法 我打算创建一个用户指纹数据库 以便我
  • HTTP 错误 500.22 - 内部服务器错误(已检测到不适用于集成托管管道模式的 ASP.NET 设置。)

    当我查看应用程序时 我收到此错误 HTTP 错误 500 22 内部服务器错误 已检测到不适用于集成托管管道模式的 ASP NET 设置 安装了 Net Framework 2 0 3 5和4 并且我使用的是SQL 2008 谁能告诉我这个
  • MVP 和 GWT 小部件之间的通信

    如果我将 MVP 模式与 GWT 结合使用 如 2009 年 Google I O 中的 GWT 架构最佳实践讨论 但已将信息分散到多个小部件中 那么应该如何填充值对象 假设我有一个 EditPersonView Presenter 一个