我在很多地方都看到过推荐的构建器模式,但不确定使用 Struts 的 Web 应用程序中的线程安全性。
我不清楚build
静态方法的变量是由调用构建器代码的每个线程共享还是在其内部。我有一种预感,这没关系,但我想确保构建器代码存在于 Web 应用程序中,并且可以同时被 10 个线程调用。
public static class ExampleBuilder {
public static Thing build(ActionForm form) {
String property1 = form.property1;
String property2 = form.property2;
String propertyX = form.propertyX;
...
return new Thing(property1, ...);
}
}
public class ExampleStrutsAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
Thing example = ExampleBuilder.build(form)
return mapping.findForward("success");
}
}