我正在寻找Java中模板方法模式的示例实现。例如,假设我想创建一个可以循环通过生成的通用类,并在列表中的类型生成的每个项目上执行具有签名生成的模板方法。

有帮助吗?

解决方案

wikipedia文章中有一个非常清晰的java示例perform方法pattern

模式的基本概念是代码的可变部分以单独的方法分解。允许共享部分保留在超类中,而后代类实现对应于可变部件的方法,根据需要提供不同的行为。

如果要保持近似接受的模式的实现,您的代码应该沿着这些行:

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);
    }
}
.

请注意,在这种情况下,所需行为的具体实现在于扩展的世代odicetagcode方法中的匿名内部类别,该方法 stringListPrinter()超类。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top