Javaでのtemplate-methodパターンの実装例を探しています。たとえば、をループして、リスト内のタイプの各アイテムにList<T>
署名を付けてテンプレートメソッドを実行できるジェネリッククラスを作成するとします。void execute(T t)
T
1 に答える
2
テンプレートメソッドパターンに関するウィキペディアの記事には、非常に明確なJavaの例があります。
パターンの基本的な概念は、コードの可変部分が別々のメソッドに分割されることです。これにより、共有パーツはスーパークラスに残り、子孫クラスは可変パーツに対応するメソッドを実装し、必要に応じて異なる動作を提供します。
一般的に受け入れられているパターンの実装に近づきたい場合は、コードを次の行に沿って配置する必要があります。
public abstract class TemplateMethodLoop<T> {
public abstract void execute(T t);
public void loop(List<T> array) {
for (T t : array) {
this.execute(t);
}
}
}
public class TemplateMethodPatternClient {
public void stringListPrinter(List<String> stringList) {
new TemplateMethodLoop<String>() {
public void execute(String string) {
System.out.println(string);
}
}.loop(stringList);
}
}
この場合、必要な動作の具体的な実装は、スーパークラスを拡張するstringListPrinter()
メソッド内の匿名の内部クラスにあることに注意してください。TemplateMethodLoop
于 2012-03-11T17:29:12.700 に答える