我目前正在构建一个GWT登录屏幕,并且设法获得了基本版本的登录结构。如何在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方法未能验证用户名和密码,则可以将叙述返回给登录组合,以便它可以更新用户。登录屏幕将保持在屏幕上,直到用户使用正确的用户名/密码组合。
我的问题是,这是使用复合材料的正确方法吗?理想情况下,我的登录逻辑应该放在哪里。是一种更好的替代方法来注入某种类型的登录处理程序对象的复合构造函数或通过setter或是我使用的方法非常正常?
,因为我打算写了很多的代码,我想要得到的编码风格从一开始就正确。
任何反馈,非常感谢。
感谢,
感谢您的链接。我观看了您链接的演示文稿。它的信息几乎太密集,以极快的速度移动。 MVP/GWT模式似乎适用于我的情况。谢谢。 – Chris 2010-07-01 05:59:32