私はStrategyパターンを実装しています:のJava、戦略パターン、ジェネリックおよび戻り値の型
:public interface Stuff<T> {
T getStuff();
}
public class IntegerStuff implements Stuff<Integer> {
public Integer getStuff() { .. }
}
public class StringStuff implements Stuff<String> {
public String getStuff() { .. }
}
は今、私は戦略を設定し、戦略メソッドを実行するために「コンテキスト」を使用したいです
public class Context() {
private Stuff stuff;
public setStrategy(Stuff stuff) { this.stuff = stuff; }
public Object doStuff() { // ARGH!
return stuff.getStuff()
}
}
コンテキストクラスのdoStuff()
メソッドのタイプが、使用されている戦略と同じタイプになるように、ジェネリックを使用するにはどうすればよいですか?あなたにもContext
をパラメータ化したい
戦略パターンは、ブラックボックスの動作の種類を可能にします。あなたは定義された入力と定義された出力を持っていますが、その間に何が起こったのか(これは交換可能でなければならない)戦略を決定します。あなたのメソッドの出力を変更したいと思うので、私は戦略パターンが正しい選択ではないと思います – CRC
@CRC、そうです、私はあなたが正しいと思います。戻り値の型が "契約"を変更します – Luciano
これは別の方法あなたはこれで何をしようとしていますか? – Fildor