gpt4 book ai didi

Java - 调用类的所有方法

转载 作者:行者123 更新时间:2023-12-02 05:45:00 25 4
gpt4 key购买 nike

我目前正在开发一个必须渲染多个 Freemarker 模板的应用程序。到目前为止,我有一个处理渲染的 Generator 类。这个类看起来或多或少像这样:

public class Generator {
public static void generate(…) {
renderTemplate1();
renderTemplate2();
renderTemplate3();
}
private static void render(…) {
// renders the template
}
private static void renderTemplate1() {
// Create config object for the rendering
// and calls render();
};
private static void renderTemplate1() {
// Create config object for the rendering
// and calls render();
};

}

这可行,但感觉不太对劲。我想做的是创建一个包含所有 renderTemplate...() 方法的类,然后从我的 Generator 类动态调用它们。这将使它更干净并且更容易扩展。我正在考虑使用反射之类的东西,但它也不是一个很好的解决方案。关于如何正确实现这一点有什么想法吗?

最佳答案

创建一个渲染器接口(interface)。

创建一个包含 Renderer 实现的数组。

遍历数组调用它们。

 interface Renderer {
void renderTemplate();
}

static final Render[] renderers = new Render[] {
new Renderer {
public void renderTemplate() {
// Create config object for the rendering of 1
// and calls render();
}
},
new Renderer {
public void renderTemplate() {
// Create config object for the rendering of 2
// and calls render();
}
},

}

public static void generate() {
for (Renderer r: renderers) {
r.renderTemplate();
}
}

如果所有 Renderer 实现共享该方法,您可能需要考虑将 Renderer 设为一个抽象类,并将 Render 方法放入其中。

关于Java - 调用类的所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24159156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com