-1

Javaでのtemplate-methodパターンの実装例を探しています。たとえば、をループして、リスト内のタイプの各アイテムにList<T>署名を付けてテンプレートメソッドを実行できるジェネリッククラスを作成するとします。void execute(T t)T

4

1 に答える 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 に答える