2

私は同じ仕事をしているが異なるシステムプラットフォームを対象とする2つのJava APIのセットを持っています.それらのAPI関数定義はすべて、パッケージ名が異なることを除いてまったく同じです(同じインターフェースを実装していません)。API のコードを変更するほど自由ではないので、API にインターフェイスを実装させることはできません。

これらの API の上にコードを記述し、これらのコードを両方の API セットで使用できるようにしたいと考えています (戦略設計パターンと同様)。

これを達成するための最良の方法は何ですか?API メソッドが 20 以上あるので、インターフェイスとアダプター クラスを作成したくありません。

4

2 に答える 2

2

動的プロキシ (java.lang.reflect.InvocationHandler) を使用することもできますが、これには追加のクラス/インターフェースも必要です。このシナリオの動的プロキシは、リフレクションを犠牲にして、実装/委任する必要があるメソッドの数を 20 から 1 に減らすだけです。

Keppil は、標準 Java でこれを「無料」で取得する方法はないとコメントしています。これは、標準 Java の方法はインターフェースを使用するためです (Groovy のダック タイピングを探している場合)。

于 2013-05-26T11:58:12.970 に答える