GWTについて、具体的な実装を返すメソッドを指定して読んだことがあります。次に例を示します。
public ArrayList<String> getList();
通常好まれる「抽象インターフェース」の代わりに、例えば:
public List<String> getList();
クライアント(つまりjs)コードは、インターフェイスのすべての既知の実装に対応する必要がないため、GWTはより小さなコンパイル済みJavaScriptファイルを生成します(例では、クライアントコードは、、、List
を処理できる必要があります)。など)、未使用の実装をコンパイルしないことでjsを最適化できます。LinkedList
ArrayList
Vector
私の密接に関連する質問は次のとおりです。
- これは本当ですか?(以下の質問はそれが真実であることを前提としています)
- 最適化は、インターフェースを使用するクラスごとですか、それともアプリケーションごとですか?すなわち
- 1つのクラスをリファクタリングするだけでメリットがありますか?また
- すべてのクライアントクラスがインターフェイスを使用しないようにリファクタリングされた場合にのみ、メリットが見られますか?