假设一个类的职责是为 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);
}