如何在GWT组合中保持业务逻辑分离?

如何在GWT组合中保持业务逻辑分离?,gwt,Gwt,我目前正在构建一个GWT登录屏幕,并设法使登录结构的基本版本正常工作 我创作了以下作品: 一个入口点类(实际上是给定的) 主应用程序屏幕组合 登录屏幕组合 我的入口点方法中有以下逻辑: MyApplication mainWindow = null; public void onModuleLoad() { LoginScreen loginScreen = new LoginScreen() { @Override public String onL

我目前正在构建一个GWT登录屏幕,并设法使登录结构的基本版本正常工作

我创作了以下作品:

  • 一个入口点类(实际上是给定的)
  • 主应用程序屏幕组合
  • 登录屏幕组合
我的入口点方法中有以下逻辑:

MyApplication mainWindow = null;
public void onModuleLoad() {
    LoginScreen loginScreen = new LoginScreen() {
        @Override
        public String onLogin(String username, String password) {
            boolean passwordWasOk = rpcCheckUsernamePassword(username,password); // mechanism not important for this question
            if (passwordWasOk) {
                RootPanel.get().remove(0);
                mainWindow = new MyApplication();
                // Using root layout panel as main window is a layout type composite
                RootLayoutPanel.get().add(mainWindow);
                return null;
            } else {
                return "password was incorrect";
            }
        }
    };
    RootPanel.get().add(loginScreen);
}
因此,我在LoginScreen组合中创建了一个方法,当用户单击“登录”按钮时调用该方法。如果onLogin方法无法验证用户名和密码,那么可以向login复合文件返回叙述,以便它可以更新用户。登录屏幕将保持在屏幕上,直到用户使用正确的用户名/密码组合

我的问题是,这是使用复合材料的正确方法吗?理想情况下,我的登录逻辑应该驻留在哪里。在组合的构造函数中或通过setter注入某种登录处理程序对象是更好的选择,还是我使用的方法很正常

由于我计划编写大量代码,我希望从一开始就正确使用编码样式

非常感谢您的反馈


谢谢,

对于复杂的项目,您可能希望使用(MVP)设计模式。它允许您将呈现逻辑(视图)与业务逻辑分离。为了让您开始,官方文档中有关于它的内容,另外还有一个内容,它启动了整个GWT+MVP=感谢链接。我看了你链接到的演示文稿。它的信息密度太高,移动速度极快。MVP/GWT模式似乎确实适用于我的情况。谢谢