Как сохранить бизнес-логику в GWT Composites? - PullRequest
1 голос
/ 30 июня 2010

В настоящее время я создаю экран входа в 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 не проходит проверку имени пользователя и пароля, тогда описательная часть может быть возвращена в композит входа, чтобы он мог обновить пользователя. Экран входа в систему будет оставаться на экране до тех пор, пока пользователь не использует правильную комбинацию имени пользователя и пароля.

У меня вопрос, это правильный способ использования композитов? Где в идеале должна находиться логика входа? Является ли лучшая альтернатива для вставки какого-либо объекта обработчика входа в конструктор композита или через установщик или метод, который я использовал, вполне нормален?

Поскольку я планирую написать довольно много кода, я хочу с самого начала получить правильный стиль кодирования.

Любая обратная связь с благодарностью.

Спасибо

1 Ответ

3 голосов
/ 30 июня 2010

Для сложных проектов вы можете использовать шаблон проектирования Model-View-Presenter (MVP). Это позволяет отделить логику рендеринга (представления) от бизнес-логики. Для начала, в официальной документации есть две статьи об этом плюс плюс эта презентация Рэя Райана , которая положила начало всему GWT + MVP = <3 тумана :) После этого я бы порекомендовал просмотреть вопросы, связанные с MVP, в SO и <a href="http://groups.google.com/group/google-web-toolkit" rel="nofollow noreferrer"> GWT Google Group .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...