ライブラリとして使用されるいくつかの GWT モジュールと、すべてのライブラリ モジュールを継承するエントリ ポイントを持つ 1 つのモジュールがあるとします。
各サブモジュールは、 の 1 つのインスタンスにアクセスする必要がありますSomeClass
。
モジュール A と Bを呼び出すとGWT.create(SomeClass.class)
、同じインスタンスが取得されますか? もしそうなら、これは保証されていますか?
ライブラリとして使用されるいくつかの GWT モジュールと、すべてのライブラリ モジュールを継承するエントリ ポイントを持つ 1 つのモジュールがあるとします。
各サブモジュールは、 の 1 つのインスタンスにアクセスする必要がありますSomeClass
。
モジュール A と Bを呼び出すとGWT.create(SomeClass.class)
、同じインスタンスが取得されますか? もしそうなら、これは保証されていますか?
いいえ。何らかの再バインド規則がない限り、にGWT.create(SomeClass.class)
コンパイルされます。または規則によって、代わりに、これらの規則によって選択された型のデフォルト コンストラクターが呼び出されます。new SomeClass()
replace-with
generate-with
これはGWT.create
、シングルトン インスタンスへのアクセスを提供する適切な方法ではないことを意味します。代わりに、Gin のような DI ツールや、常に同じインスタンスを渡す手動 DI を検討してください。キーワードを使用しstatic
て、同じアプリにコンパイルされたすべてのコードが参照できる単一のインスタンスを保持することもできます。