Может кто-нибудь объяснить мне что-нибудь.Вот некоторый сценарий.
Предположим, у меня есть шаблон класса и я использую Gin / Guice в приложении.
@Singleton
public class Template extends Compose
{
private HorizontalPanel header;
private HorizontalPanel content;
private VerticalPanel menu;
public Template()
{
this.add(initHeader());
this.add(initMenu());
this.add(initContent());
}
public void setContent(Widget widget)
{
content.clear();
content.add(widget);
}
.............
......
}
и в входном классе
........
public void onModuleLoad()
{
RootPanel.get().add(new Template());
....
}
Каждый раз, когда мне нужно перезагрузить контент, я делаю ..
Например,
HorizontalPanel hp = new HorizontalPanel();
hp.add ....
...
Template template = injector.getTemplate(); // return singleton instance using gin
template.setContent(hp)
и т. Д.
Итак, Template является singleton и насколько язнаете, единичный экземпляр - это один для каждой виртуальной машины, то есть общий для всего приложения, верно?Шаблон класса имеет заголовок, меню и контент, идея состоит в том, чтобы перезагрузить только часть контента в качестве очистки и добавления виджетов.Но хороший ли это подход?
Например, может ли у нас быть ситуация, подобная пользователю "A" setContent (widgetA), но в то же время пользователь "B" использует метод setContent (widgetB), так что же здесь произойдет?
Спасибо, если кто-нибудь в конце концов поделится со мной хорошим подходом и прокомментирует его.
С уважением