Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT MVP实现_Java_Gwt_Mvp - Fatal编程技术网

Java GWT MVP实现

Java GWT MVP实现,java,gwt,mvp,Java,Gwt,Mvp,我有几个与gwt mvp设计相关的问题: 我们可以使用事件总线通过使用自定义事件的控制器将视图从一个演示者切换到另一个演示者吗 如果上述情况属实,自定义事件(如changeViewEvent)是否可以包含下一个视图的名称,根据哪个控制器可以做出决定,显示哪个演示者 让视图在应用程序中可重用(作为一个小部件)是一个好的设计吗?虽然我不同意这一点,但如果有人对此表示赞同,我会很高兴的 PS:我的所有观点都使用自定义控件,视图中没有GWT特定的小部件(按钮、复选框等)。 你可以做任何你想做的事情

我有几个与gwt mvp设计相关的问题:

  • 我们可以使用事件总线通过使用自定义事件的控制器将视图从一个演示者切换到另一个演示者吗

  • 如果上述情况属实,自定义事件(如changeViewEvent)是否可以包含下一个视图的名称,根据哪个控制器可以做出决定,显示哪个演示者

  • 让视图在应用程序中可重用(作为一个小部件)是一个好的设计吗?虽然我不同意这一点,但如果有人对此表示赞同,我会很高兴的


PS:我的所有观点都使用自定义控件,视图中没有GWT特定的小部件(按钮、复选框等)。

你可以做任何你想做的事情,但是你必须考虑后果。例如,如果在不创建历史事件的情况下切换视图,则当用户点击“后退”按钮希望看到上一个视图时,可能会将用户从应用程序中抛出

我非常喜欢这种设计模式。它解决了所有问题(历史处理、书签、令牌等)。您还可以扩展它,在移动设备上切换视图时添加动画效果——这样做

我有几个与gwt mvp设计相关的问题:

  • 我们是否可以使用事件总线通过使用自定义事件的控制器将视图从一个prsenter切换到另一个prsenter
  • 这是一种糟糕的做法,除非你有充分的理由这么做。由于您更改视图时不会对url产生影响,因此在选择的时刻您不知道视图的状态是什么,您无法轻松返回到以前的视图,最后,由于您超出了“标准”,人们将很难阅读代码。 您的唯一参考应该是url,您不能假设数据已加载,应用程序也不处于给定状态:每个视图和任何视图都可能是用户导航故事的开始,因此,如果您从该位置以外的任何其他来源获取信息,您可能做错了,特别是如果您的源是事件。这里唯一的特殊情况是,您不希望用户在某个视图状态下进入您的应用程序,因此您“强制”之前调用另一个url,并通过从给定应用程序状态开始的事件限制对该视图的访问
  • 如果上述为真,自定义事件(比如changeViewEvent)是否可以包含下一个视图的名称,控制器可以根据该名称 做一个决定,显示哪个选项
  • 如前所述,您正在重新发明车轮。更好的做法是适应经过深思熟虑并涵盖大多数案例的现有机制。您可以在开发时使用json格式化程序来标记url,这样就不会让变量成为噩梦。完成后,创建一个更好的常规url格式
  • 让视图在应用程序中可重用(作为小部件)是一种好的设计吗?虽然我不同意这一点,但如果
    有人有什么要说的
  • 取决于您所称的视图。如果是activitie的视图,那么您可能需要在极少数情况下继承一个基本视图,并为每个活动派生其子视图(即使该视图不起任何作用,时间将表明它将以不同的方式发展):这更好,因为基本视图包含常见的内容,而不包含每个子活动的细节。
    • 最后,如果你说的是一个视图,那么你肯定应该重用它们,这将使你不得不改进你的小部件和组成,以不断改进,这将帮助你完成项目的其余部分,也可能是其他项目

你不能做任何你想做的事Andrei,还有其他程序员需要阅读代码,代码越具体,理解代码所需的时间就越长。标准规则有助于提高效率that@ZiedHamdi这是一个很好的观点。我并不主张使用完全定制的解决方案。事实上,我建议使用一种被广泛接受的设计模式。我从来没有说过我在管理历史记录,因此你提到的前两点是无效的。如果你没有说出来,那并不意味着你不需要它(特别是历史记录!!!有人怎么能提出一个没有历史记录的web解决方案??)。它甚至意味着你永远不需要它(如果你现在真的不需要的话)。我谈论的是MVP的体系结构,与您的具体问题无关,您的问题是:“我有一些与gwt MVP设计相关的问题”,所以我回答的是设计问题。请考虑我写了一个广泛的答案,这应该使你快乐,而不是寻找“无效”点。这就是当一位专家与一位自豪的初学者交谈时会发生的情况……附言:我来这里只是为了帮助有困难的人,因为我刚开始的时候曾经遇到过麻烦。当然,我不需要你的批评者@Mohit,如果你不值得帮助,我会回答其他人,但你不会对我产生任何影响,在更糟糕的情况下,你唯一会让自己变得更糟的人是你自己。为什么有人给你这样的帮助?1,我在问一个真正的问题。我只是想知道这是否是一个好的设计决策。如果没有,为什么要这样做,如何做?