GWT MVP实施

时间:2014-09-04 15:00:30

标签: java gwt mvp

我的gwt mvp设计相关问题很少:

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

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

  • 在应用程序中使视图可重用(作为小部件)是一个很好的设计,虽然我不同意这一点,但如果有人提出任何有利于此的事情,我会很高兴。< / p>

PS:我的所有视图都使用自定义小部件,视图中没有特定于gwt的小部件(按钮,复选框等...)。

2 个答案:

答案 0 :(得分:0)

你可以做任何你想做的事,但你必须考虑后果。例如,如果您在不创建历史事件的情况下切换视图,则当用户点击后退按钮以期望查看上一个视图时,用户可能会被拒绝。

我非常喜欢Activities and Places设计模式。它负责处理所有问题(历史记录处理,书签,令牌等)。您还可以在移动设备上切换视图时对其进行扩展以添加动画效果 - mgwt这样做。

答案 1 :(得分:-1)

  

我的gwt mvp设计相关问题很少:

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