にポリシーを渡すの代替として、私は次のようにいくつかのJavaコードがあります。のJavaのジェネリックは、コンストラクタ
public class Thing {
private IPolicy policy;
public Thing(IPolicy policy) {
this.policy = policy;
}
public void doSomething() {
this.policy.execute();
}
}
私の質問です:それは、コンストラクタにポリシーを渡すのではなく、ジェネリック医薬品でこれを行うことは可能でしょうか?これは、私がそれが最終的なものになることを意味すると思います。
public class Thing<T extends IPolicy>
しかし、私はジェネリックではありません。
私の動機は、1)私のプログラムがこのタイプの一部であり、コンストラクタ(他の関連するものがあります)に関与していないこと、そして2)ジェネリックを学ぶことを試みている。
C++から来ていますか? (JavaのジェネリックはC++のテンプレートではありません。)Javaでは、一般的にbogの標準[動的]多型を使用して、パラメータ化された型を記述するための動作とジェネリックを記述します。この2つを組み合わせる必要があるかもしれませんが、C++はテンプレートだけで逃げるかもしれません。 –