更改字段的本地方法参数



假设一个类,其职责是为 JDBC 查询设置参数。

它将有一个fillParameters()方法和一个 PreparedStatement 作为一个字段,因为跨所有私有子方法共享。

此外,这些子方法需要了解当前的 JDBC 参数索引。

因此可以采用两种解决方案:

  • 将当前索引作为局部参数传递到每个方法中(如果有很多子方法,则重新创建)

  • 将当前索引位置声明为字段(或属性),这样就无需通过多个方法参数传递它。但缺点是,如果我们想象对此方法的第二次调用是使用相同的对象实例进行的(出于特定原因,没有真正的用例,但想象......实际上,在调用子方法创建的所有进程之前,必须将当前的索引位置重新初始化为 0。

最佳实践是什么?

public void fillParameters(){
this.currentIndex = 0; //reinitialize to first index !
//....call to each submethods without need to pass currentIndex as local parameter
}

或:

public void fillParameters(){
int currentIndex = 0;
//....call to each submethods with currentPosition as index like :
feedFirstParameter(++currentIndex);
feedSecondParameter(++currentIndex);
}

局部变量选项可以更好地封装方法工作原理的详细信息。正如您所指出的,这将更容易维护,并且不太可能产生副作用。如果开销成为问题,您可以进行优化。我不确定是否有最佳实践,因为设计取决于对你来说重要的东西。无论哪种方式,最好的办法都是在代码中记录您的推理。

相关内容

  • 没有找到相关文章

最新更新