異なるインターフェースを持ついくつかのオブジェクトに対して1つの呼び出しハンドラー(プロキシ)を定義することは可能ですか?
このプロキシがオブジェクトに対して行うこと(すべてのチェックなど)は同じであるため(そして、それらは、プロキシ上で1か所に配置することを好むロック管理テーブルを共有します)、
それを行う方法はありますか?
ありがとう、アリアン
異なるインターフェースを持ついくつかのオブジェクトに対して1つの呼び出しハンドラー(プロキシ)を定義することは可能ですか?
このプロキシがオブジェクトに対して行うこと(すべてのチェックなど)は同じであるため(そして、それらは、プロキシ上で1か所に配置することを好むロック管理テーブルを共有します)、
それを行う方法はありますか?
ありがとう、アリアン
それを行う方法は、共通の IH コードを表す基本クラスを用意し、特定の呼び出しごとにそれをサブクラス化することです。
それ以外の場合は、入ってくるオブジェクトを調べて、適切なアクションを決定できます。
public Object invoke(Object proxy, Method method, Object[] args) {
if (proxy instanceof InterfaceA) {
handleInterfaceA(proxy, method, args);
} else if (proxy instanceof InterfaceB) {
handleInterfaceB(proxy, method, args);
}
}
しかし、Java には既にクラス ディスパッチ メカニズムがあるため、一連の IF や switch ステートメントよりも、それを使用する方が適切です。