如何使用模板方法模式循环通过列表?
-
11-12-2019 - |
题
我正在寻找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()
超类。
不隶属于 StackOverflow