将上下文传递给函数有用吗?
Is it useful to pass context to a function?
我经常这样做:
public static void myUtilFunction(FacesContext context, [...]) {
// TODO add code
}
而不是:
public static void myUtilFunction([...]) {
FacesContext context = FacesContext.getCurrentInstance();
// TODO add code
}
哪个更好?
从当前线程获取当前 FacesContext
实例的开销很小。所以我会选择不将它作为参数添加到实用程序方法中,以使您的代码更简洁、更具可读性。
此外,如果您查看 OmniFaces(JSF 实用程序函数方面的领先库),它们不要求您传递 FacesContext
。例如:
Messages.addGlobalInfo("Hello");
该库由 BalusC(Whosebug 上的顶级 JSF 用户)维护,所以我认为您可以去学习他的示例。
我经常这样做:
public static void myUtilFunction(FacesContext context, [...]) {
// TODO add code
}
而不是:
public static void myUtilFunction([...]) {
FacesContext context = FacesContext.getCurrentInstance();
// TODO add code
}
哪个更好?
从当前线程获取当前 FacesContext
实例的开销很小。所以我会选择不将它作为参数添加到实用程序方法中,以使您的代码更简洁、更具可读性。
此外,如果您查看 OmniFaces(JSF 实用程序函数方面的领先库),它们不要求您传递 FacesContext
。例如:
Messages.addGlobalInfo("Hello");
该库由 BalusC(Whosebug 上的顶级 JSF 用户)维护,所以我认为您可以去学习他的示例。