字段与局部变量?何时使用其中一种?

时间:2013-08-11 15:28:25

标签: oop refactoring

关于类字段和局部变量的使用,我有几个问题。

  • 什么时候应该将变量声明为字段或局部变量?当然,很明显,如果变量只存在于块或函数的范围内,则变量应该只是是当地的。
  • 如果在重构函数之后将大函数分解为什么,该怎么办? 几个私人职能 - 这是否足以成为理由 将局部变量提升为字段?可读性怎么样?
  • 在私有函数中传递局部变量会更好吗?
  • 在使用相同局部变量的函数中提取类是否可行,而不是提升到字段?

你能解释相关主题的任何内容都会很好。

1 个答案:

答案 0 :(得分:2)

  1. 当一个变量表示实例的* state *时,将其声明为字段。
  2. 分割出的大型函数不足以将局部变量提升到字段中。对可读性和可维护性的影响太大了:
    1. 程序员总是必须推理这些字段是否是该州的一部分,还是只是一些临时计算助手;
    2. 很多,很多 harder to maintain thread-safety,因为相同的字段用于任何并发方法调用。
    3. 将变量从一个内部方法传递给另一个内部方法有助于:
      1. 独立理解方法的确切功能;
      2. 重复使用内部方法;
      3. 对内部方法进行单元测试。
  3. 是的,传递局部变量。
  4. 如果有太多这样的变量,通常将它们分组在一个方便的辅助类中,它起到结构的作用。它提高了可读性并简化了使用。