Расширяемость платформы на основе GWT / GIN / GUICE - PullRequest
1 голос
/ 16 февраля 2012

Я надеюсь, что мой вопрос не является общим.

Я создал фреймворк в gwt / gxt, который помогает разработчику очень быстро создать веб-приложение с набором предварительно определенных виджетов.

Теперь в течение многих дней они хотят иметь новые функциональные возможности, которые очень связаны с конкретным клиентом, и мне было очень сложно расширять мою платформу. Я использую шаблон MVP на стороне клиента с GIN и GUICE на стороне сервера. Клиентские компоненты, которые необходимо расширить, также имеют соответствующие службы на сервере для загрузки своих данных.

Я уже думал о создании новых модулей guice и о «связывании» (не знаю, правильное ли это слово) существующих, но чем разработчик должен переписать весь модуль или его сервис.

У кого-нибудь уже есть опыт разработки фреймворка с gwt на стороне клиента и сервера? Если да, то как я могу предоставить моей платформе легкую возможность дополнить ее специфическими для клиента материалами. Может быть, есть несколько хороших шаблонов, которые я мог бы использовать.

Большое спасибо

1 Ответ

0 голосов
/ 03 мая 2012

Если я правильно понимаю ваш вопрос, вы можете сделать что-то похожее на эту идею, которую я получил сейчас.

В вашей структуре вы можете предоставить модуль со всеми вашими модулями, например:

public class MyAPI {
    public static List<Module> MODULES = Arrays.asList(new FooModule(), new BarModule(), new OtherModule());
    public static Module getMyAPIModule() {
        return new AbstractModule() {
             protected void configure() {
                  for(Module m : MODULES) install(m);
             }
         }
    }
}

Затем, в вашем приложении, когда вы создаете инжектор, или в вашем модуле сервлета, вы можете сделать install(MyAPI.getMyAPIModule());, и он будет работать

...