-1

我正在寻找 Java 中模板方法模式的示例实现。例如,假设我想创建一个通用类,它可以循环List<T>并执行一个模板方法,并在列表中的void execute(T t)每个类型项上执行签名。T

4

1 回答 1

2

模板方法模式的 Wikipedia 文章中有一个非常清晰的 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 回答