Java MVP:演讲者单身
我在ajax web应用程序(GWT)中使用历史记录管理。当用户按下后退或前进按钮时,将显示另一个视图。每个视图只创建一次。我的问题是如何处理演示者Java MVP:演讲者单身,java,gwt,history,mvp,Java,Gwt,History,Mvp,我在ajax web应用程序(GWT)中使用历史记录管理。当用户按下后退或前进按钮时,将显示另一个视图。每个视图只创建一次。我的问题是如何处理演示者 我认为有两种方法: 1.该视图保存所有数据,在每次历史记录更改事件后,将创建一个新的演示者。当模型需要一些数据时,演示者将要求视图提供数据并将其发送给模型。 2.演示者保存所有数据,并且在每次历史记录更改事件后,演示者将重新用于视图。因此,视图只有ui小部件,用户所做的所有更改都将重定向到演示者。 我更喜欢第二种方式,但我不确定这是否与mvp兼
我认为有两种方法:
1.该视图保存所有数据,在每次历史记录更改事件后,将创建一个新的演示者。当模型需要一些数据时,演示者将要求视图提供数据并将其发送给模型。
2.演示者保存所有数据,并且在每次历史记录更改事件后,演示者将重新用于视图。因此,视图只有ui小部件,用户所做的所有更改都将重定向到演示者。
我更喜欢第二种方式,但我不确定这是否与mvp兼容。你给我推荐什么?如果你确保演示者是轻量级的,即或多或少没有状态(我的解释),那就不那么重要了
我更愿意将数据状态加载/保存的代码委托给从presenter调用的另一个类,并使presenter成为一个单独的类。如果您确保presenter是轻量级的,即或多或少没有状态(我的解释),那么就不那么重要了
我更愿意将数据状态加载/保存的代码委托给从presenter调用的另一个类,并使presenter成为一个单独的类。还有第三种方法,即presenter和view都不保存数据。该视图只包含ui小部件,是一个可重用的单例。presenter包含逻辑和本地状态,每次调用时都会创建presenter。通过在每次调用时创建它,可以确保本地状态是新鲜的
作为演示者启动的一部分,演示者所需的外部数据可以在服务器上查询,但如果需要在演示者之间传递数据,则这可能不起作用。因此,将数据存储在由应用程序维护的全局对象中,当调用presenter时,所需的特定对象通过presenter的构造函数传递给presenter。通过从演示者和视图中删除数据,您可以使其更加简单,因为演示者/视图无需管理。如果不存在,此代码还将从服务器获取数据。当用户转到某个页面时,它也会变得更加健壮,比如编辑将加载特定演示者/视图的url。通过将数据管理移出presenter/视图,您不必担心presenter/视图中的错误数据,因为应用程序将处理用户实际获得的presenter/视图,这可能与请求的页面不同,因为请求的页面对于当前的数据无效。还有第三种方法,这不是演示者和视图保存数据的方式。该视图只包含ui小部件,是一个可重用的单例。presenter包含逻辑和本地状态,每次调用时都会创建presenter。通过在每次调用时创建它,可以确保本地状态是新鲜的 作为演示者启动的一部分,演示者所需的外部数据可以在服务器上查询,但如果需要在演示者之间传递数据,则这可能不起作用。因此,将数据存储在由应用程序维护的全局对象中,当调用presenter时,所需的特定对象通过presenter的构造函数传递给presenter。通过从演示者和视图中删除数据,您可以使其更加简单,因为演示者/视图无需管理。如果不存在,此代码还将从服务器获取数据。当用户转到某个页面时,它也会变得更加健壮,比如编辑将加载特定演示者/视图的url。通过将数据管理移出presenter/视图,您不必担心presenter/视图中的错误数据,因为应用程序将处理用户实际获得的presenter/视图,该视图可能与请求的页面不同,因为请求的页面对于当前的数据无效