外部 API を非表示にするためにアダプタを使用しています。
DocumentTreeNodeAdapter DocumentTreeNode
| |
| |
CommonTreeAdapter ----> CommonTreeNode ----> CommonTree (foreign)
CommonTreeAdapter には、CommonTreeNode を返す adapt() メソッドがあります。インターフェイスだけ配りたい。クライアント コードは、DocumentTreeNode および DocumentTreeNodeAdapter インターフェイスで動作します。
Adapter の作成をさらに簡素化したいので、Factory が必要です。
DocumentTreeNodeAdapterFactoryImpl
私の質問はその工場についてです:
私はそれを一般的にする傾向があり、メソッドを提供します:
register(Class<? extends DocumentTreeNodeAdapter, Class<?> target);
特定のアダプタを取得するには:
getAdapterFrom(Class<?> target);
例えば
getAdapterFrom(CommonTree.class);
しかし、アダプターの登録はどこに置くべきですか? 実際、現時点ではアダプターが 1 つしかなく、工場でハードコードすることができますが、スケーラビリティのために、その register(...) アプローチが本当に気に入っています。
後で Guice を使用して、すべてを結び付けます。モジュールで Factory を初期化する必要がありますか?それとも、Guice はこれを行うための簡単な方法を提供していますか? 私はまだ Guice の経験がありません。
事前に感謝します。これは広く使用されているため、誰かがこれがどのように行われるかを知っていると確信していますが、サンプルが見つかりません。
敬具