2014-01-29 70 views
0

我有一个调用2个独立的DAO的从DB拉动信息一个Bean类。这是结构类变量VS局部变量

class InfoRetriever { 

public String retrieveInfo(int arg1, int arg2){ 
     String info = retrieveFirstInfo(arg1 , arg2); 

     if(info.equals("xyz")){ 
      retrieveSecondInfo(arg1, arg2); 
     } 
} 

private String retrieveFirstInfo(int arg1,String arg2){ 
    // call DB to get info 
} 

private String retrieveSecondInfo (int arg1, String arg2) { 
    // call DB to get info 
} 

} 

我的问题是,我有选择的移动ARG1和ARG2为成员的元素,可以调用retrieveFirstInfo和retrieveSecondInfo前设置它们。我也可以将信息作为成员变量。

哪些权衡是否有保持一个局部变量的方法VS类变量的选择要考虑的。

+2

比的权衡下,应该考虑是否这些参数真正应该做的类的成员。他们是否属于那里?他们是否应该保持对象的状态?如果是,那么是的,绝对让他们成为领域。 –

+0

@rohit - 这,正是我的问题is.Now这是一个有些服务/管理器类。这些并不是实体/真实世界的对象,因此对我来说难以辨认抽象。 –

+0

然后,我会保持原样。将它们作为参数传递是没有问题的,如果它们不适合作为成员变量。另外,您的'retrieveInfo'方法也会从调用者那里接收这些参数?检查那里的语法。你缺少'()'。 –

回答

1

如果arg1arg2任何价值给你同样的info,那么,正确的方式:

  • info成员变量
  • 声明一个构造函数ARG1和ARG2和参数
+0

谢谢阿米特。我要作出成员元素信息作为我甚至可以拉,如果需要在将来使用一个getter这个intermediatery信息。虽然我不在使用构造函数的情况下找到任何信息。 –

+0

如何标记这个答案,因为所选择的答案:d –