问题标签 [puremvc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12734 浏览

model-view-controller - 您对构建 GWT 应用程序有什么建议?MVC、MVP 或自定义消息传递解决方案?

我刚刚为一个客户启动了一个新的 GWT 项目,我很想听听人们对各种 GWT MVC 架构的体验。在最近的一个项目中,我使用了GXT MVC以及自定义消息传递解决方案(基于Appcelerator 的 MQ)。GXT MVC 工作正常,但对于 GWT 来说似乎有点过头了,而且很难处理浏览器历史记录。我听说过PureMVCGWTiger,但从未使用过它们。我们的自定义 MQ 解决方案运行良好,但很难使用 JUnit 测试组件。

此外,我听说 Google Wave(一个 GWT 应用程序)是使用 Model-View-Presenter 模式编写的。最近发布了一个示例 MVP 应用程序,但是查看代码,它似乎并不那么直观。

如果您正在构建一个新的 GWT 应用程序,您会使用哪种架构?你选择的优缺点是什么?

谢谢,

马特

0 投票
1 回答
145 浏览

apache-flex - Flex modulleader url,为什么不能只看根目录?

我们使用 pureMVC 多核作为 flex 框架,当我们需要加载模块时,我们使用第一行“moduleEval.swf”;。

它在本地运行良好以进行测试。

但不是在明显在线的生产服务器上,在这种情况下,我需要输入完整的 URL。

这正常吗?

谢谢,

格雷格

0 投票
2 回答
938 浏览

apache-flex - 为什么在 Flex PureMVC 中调解器与代理耦合?

我最近刚刚学习了PureMVC框架,对 Proxy 和 Mediator 对象之间的耦合有点困惑。页面上的链接连接到描述该框架的一些文档。(请注意,上述页面上的链接会打开 PDF。)

我研究过的 PureMVC 图表和示例经常显示 Mediator 和 Proxy 之间的直接耦合。当代理的状态更新时,而不是发送一个新的通知,中介者(它从门面检索对代理的引用)更新其状态。

这当然似乎简化了代码的逻辑,但它也直接将两个看似完全不同的组件耦合在一起。据我了解,Mediator 的目的是将事件从视图转换为 PureMVC 通知。代理旨在执行一些功能来收集数据并将其转发回视图。这两个组件似乎存在于应用程序的不同层中,也许不一定要耦合在一起。

让 Proxy 对象在状态更新时发送自己的通知不是更有意义,这些通知由 Facade 转发给感兴趣的 Mediator 吗?

0 投票
1 回答
598 浏览

actionscript - 在 PureMVC 中,代理应该自己发送通知,还是通过 ApplicationFacade 发送?

PureMVC框架中,代理通过通知与 ApplicationFacade(以及任何感兴趣的组件)进行通信。该通知应该通过它们自己的实例发送,还是通过 ApplicationFacade 的 Singleton 实例发送?老实说,这有关系吗?

这里有两种方法(在 Flex/AS 中):

第二种方法对我来说看起来更冗长且不那么直观。此外,代理能够发送通知,在我看来,这意味着它可能应该。是否存在代理仅应通过 ApplicationFacade 实例发送通知的情况?

0 投票
7 回答
954 浏览

model-view-controller - 什么设计模式?我的应用程序需要两种模式,编辑和查看

如果我在我的应用程序中需要两种模式,我会使用什么设计模式来防止丑陋的条件代码?应用程序当前是 MVC,但我不想在我的控制器中使用条件代码,并且不希望每个视图有两个控制器,除非我必须这样做。

有什么建议么?

0 投票
1 回答
201 浏览

apache-flex - pureMVC:界面中每个选项卡的唯一中介

我正在构建一个用于在各种相似层之间切换的选项卡式界面。每一层都会有许多图表。通过用鼠标拖动,图形可以重新排列,甚至可以在图层之间移动。我的问题是,最好的做法是为每一层注册一个唯一的中介来跟踪层的内容/组织,还是我应该用一个中央中介来跟踪它。

一些考虑:

图层内容和组织将被保存(在数据库中),以便在用户返回应用程序时可以恢复。

这些层本身在功能上是相同的。

用户可以随意添加和删除图层。

谢谢!

0 投票
1 回答
983 浏览

design-patterns - 在 flex puremvc 框架中注册代理和中介的最佳位置是什么?

我正在使用 puremvc 框架来开发基于 flex 的项目。我的问题与延迟注册代理类和中介类的最佳方法有关?目前在启动命令上,我正在注册启动调解器。

我的代码有:

  1. ApplicationFacade.as
  2. 启动命令.as
  3. 启动调解器.as
  4. 登录命令.as
  5. 登录中介者.as
  6. 登录代理.as
  7. 登录视图.as

ApplicationFacade.as我正在向StartupCommand发送通知。StartupCommand注册StartupMediator

现在我的问题:

  1. 何时何地注册 LoginMediator
  2. 何时何地注册 LoginProxy
  3. 何时向 LoginCommand发送通知?
  4. 如果我们在LoginCommand中注册LoginMediatorLoginProxy就像

    p>

    现在,如果我 多次 发送LoginCommand通知,那么它会创建多个LoginProxyLoginMediator 实例。那么如何避免呢?

0 投票
1 回答
276 浏览

model-view-controller - 如何在没有对象构造的情况下使用 Facade.Instance 方法?

我最近才完成了一个关于软件模式的单元,现在正在尝试理解 PureMVC 框架。然而,有一件事让我很困惑,这对这里的大师来说很简单。

我正在尝试创建单例 Facade 类的实例。在构造函数中,注释状态:

这个IFacade实现是一个Singleton,所以不应该直接调用构造函数,而是调用静态的Singleton Factory方法Facade.Instance

当 Facade 对象还没有被创建的时候,你怎么能调用实例方法呢?

Facade.Instance 方法如下所示:

0 投票
2 回答
1228 浏览

apache-flex - Flex 应用程序框架——PureMVC 可移植性与 Swiz?

我的公司正在构建一个我们可能需要移植到其他平台的 Flex 应用程序:

  • 银光(可能)
  • 移动设备(也许——iPhone:Objective-C,Android:Java 等)
  • 桌面(也许——AIR、.NET 等)
  • 电视机(也许最终)

目前,我正在研究构建应用程序框架,我在 pureMVC 和 Swiz 之间纠结。

我喜欢 swiz 的简单性以及它如何为您提供一种连接事物然后应用您自己的模式的方法。从仅弹性的角度来看,这是我的第一选择。

但是,PureMVC 是独立于平台的,并且已经被移植到上面提到的大多数平台上。 这种便携性有多大价值? 在移植和开发/维护多个应用程序时,它真的会让我们的生活变得更加轻松吗?如果是这样,那么 PureMVC 似乎是要走的路。

或者,由于 Silverlight 有最明确的业务案例来移植我们的应用程序,也许我们可以将Swiz 移植到 Silverlight?我不太熟悉 Swiz 所依赖的 AS3 语言和 Flex 框架特性以及它们是否在 C#/Silvelright 中可用。 这真的可能吗?

非常感谢!

卡尔提克

0 投票
1 回答
193 浏览

apache-flex - 中介者是否必须在 PureMvc 中持有视图?

我有一个关于 pureMvc 的问题。

我 uew pureMvc 来构建一个引擎,在引擎初始化部分我有一个要求

1) moduleA 必须先初始化

2) moduleB , moduleC 需要在 moduleA init complate 之后进行 init。

3) moduleD 需要在 moduleB 和 moduleC 初始化完成后初始化。

4) moduleA , moduleB , moduleC , moduleD 都扩展了 Proxy 因为四个系统都需要发送通知,但不需要监听。

但为了满足要求,我不能使用命令来做到这一点,因为他们有 ini 顺序,而且他们需要记住当前状态(例如:moudelB 是 init Complate 但 moudleC 不是 init complate 然后不能 init moudleD)但是命令是无状态的。

我认为最好的方法是使用一个调解器来做到这一点,因为它既可以收听又可以发送通知。

我的问题是:

1)这是使用一个调解器的好方法吗?

2)如果使用 Mediator 是好方法,那么当它听到第一个 moduleA 是 init complate

需要这样做还是只在 Mediator 中执行 inti 逻辑?

谢谢