何か説明してくれませんか。ここにいくつかのシナリオがあります。
クラス テンプレートがあり、アプリで 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)
等々..
したがって、テンプレートはシングルトンであり、私が知る限り、シングルトン インスタンスは VM ごとに 1 つであるため、アプリケーション全体で共有されます。テンプレートクラスにはヘッダー、メニュー、コンテンツがあり、ウィジェットのクリーニングと追加としてコンテンツ部分のみをリロードするという考え方です。しかし、これは良いアプローチですか?
たとえば、ユーザー「A」が setContent(widgetA) のような状況になり、同時にユーザー「B」がメソッド setContent(widgetB) を使用すると、どうなるでしょうか?
ありがとう、誰かが最終的に良いアプローチを私と共有してコメントしてくれたら。
よろしく