6

PureMVC 框架的既定目标之一是避免平台依赖性以实现可移植性。考虑到由于语言和 API 的差异,应用程序代码将始终严重依赖于平台,并且避免平台依赖会使框架重新发明轮子和/或仅提供最小公分母功能集,可移植性以何种方式作为应用程序开发人员,该框架对我有什么好处?

4

6 回答 6

4

我曾与 PureMVC 合作过。他们试图用很多语言来实现他们的东西。关于最小公分母,你可能是对的,但总的来说,它不是一个糟糕的框架,而且我在 PureMVC 中看到了一个非常好的 AS3 应用程序。

我不认为他们在谈论移植实际代码的可移植性。您使用通用 MVC 架构的想法更多,您可以将其应用于其他项目和其他语言。

他们试图说,如果您熟悉 PureMVC 模式,您可能会接触到新的 PureMVC 代码库,即使它是另一种语言,并且您已经了解了这片土地。

您也可能会说,开发出良好的 PureMVC 技能的开发人员可能会养成良好的习惯,这些习惯会随着他们从一种语言转换到另一种语言。但话又说回来,也许不是……因为你提到的原因。

于 2008-09-27T11:12:27.377 回答
3

我们现在已经在两个项目中使用了 PureMVC,在我看来,尝试独立于语言是一个相当大的负担。

如果语言还不是很相似(C# 到 java 是有意义的,as3 到 php 不是),那么因为已经知道框架而直接进入项目的承诺似乎与我无关——我同意它是有用的已经知道解决问题的方法,但是“普通”模式已经足够好了。

但是,我也不完全同意项目使用的各种模式的使用,因此我们选择在下一个项目中不使用它可能与这两个问题有关,而不仅仅是语言/平台独立性的尝试。

于 2008-12-24T18:49:10.057 回答
3

当您迁移到另一种语言或用另一种语言重新实现时,PureMVC 的可移植性将为您提供帮助。

我数不清有多少平台和语言我为它们编写的代码现在已经灭绝,即使我还有源代码,它也几乎毫无价值,今天必须从头开始重写,因为代码通常是 100% 特定于平台的。

但是所有应用程序代码都不需要严重依赖于平台。视图组件和服务(您的应用程序的边界)必然是,但夹在边界之间的应用程序逻辑不一定是。

PureMVC 的范围真的很窄;只是为了帮助您将代码拆分为 MVC 元模式所禁止的三层。没有理由将此代码与您的平台紧密绑定才能达到最佳状态。

当需要迁移时,您会发现框架参与者及其角色、职责和协作保持不变。这使您可以处理语言的语法差异,重新创建视图组件和服务。至少你不必完全重新架构。

对于以不同语言重新实现的情况,假设您正试图通过您的应用程序占领移动市场的重要部分。市场如此分散,您必须在 2 个或更多 Windows Mobile、iPhone、Flash 和 Java 上实现相同的程序。当然,您可能会有不同的团队负责应用程序,但为什么会有完全不同的架构呢?使用 PureMVC,您可以为应用程序的所有版本使用单一架构。

-=悬崖>

于 2009-11-05T16:25:04.537 回答
2

对于选择不使用 Flex 框架的 Flash 平台开发人员来说,PureMVC 是唯一真正的选择。对于某些项目,Flex 的规模成本太贵了(它发生了!)。

我喜欢在 Flex 中制作原型,然后在应用程序接近完成时将其撕掉并用自定义组件替换我的视图。PureMVC 使用它的 Mediator 模式使这变得非常容易。我不确定是否有任何其他框架可以让我使用这个工作流程。

就我个人而言,我认为 PureMVC 的可移植性目标太过分了:我喜欢它与 Flash 和 Flex 一起工作的事实(出于上述原因),但觉得它应该停在那里,并利用原生 Flash Player 事件建筑学。

于 2009-01-12T16:41:44.743 回答
1

是否有使用 PureMVC 跨多个平台构建和移植应用程序的示例?

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

  • 银光(可能)
  • 手机(可能)
  • 桌面(也许——不仅仅是 AIR!)
  • 电视机(也许最终)

如果 PureMVC 可以简化移植和维护,我正在考虑将其作为一个框架。我很想知道其他人是否已将 PureMVC 应用程序移植到不同的平台,以及他们在移植和在多个平台上并行开发应用程序的经验。

干杯,

卡尔提克

于 2009-12-09T10:23:20.050 回答
1

PureMVC 的内部工作(Flash 事件等)不依赖于平台。因此,虽然它不会让移植变得更容易,但它可以通过向我们展示它友好和熟悉的面孔来帮助我们,无论我们选择去哪里;-)

于 2010-08-17T07:52:03.753 回答