次のことを考慮してくださいJava
interface
public interface Script<T> {
public T execute(Map<String,Object> args);
}
次に、
public interface SubScript<T> extends Script<T> {
public T execute(String knownTypeArgument, Map<String,Object> args);
}
Hereは、Sub のメソッドknownTypeArgument
によって常に必要とされます。インターフェイスでは、メソッドexecute
は必要ありません。SubScript
public T execute(Map<String,Object> args);
私が持っている質問は、引数を1つまたは2つ追加するためだけにサブインターフェースを定義するのは標準的/正しい方法ですか?
SubScript
がまったく定義されておらず、knownTypeArgument
渡された場合、実装で不適切なコードが発生しMap<String,Object> args
ますか?
PS :execute(String knownTypeArgument, Map<String,Object> args);
とexecute(Map<String,Object> args);
の両方がまったく同じ目的を果たすはずです。状況execute
によっては、より多くの情報が必要になるだけです。
PPS: stackoverflow のルールに従って、議論ではなく、私が見逃している事実/ポイントを探しています。