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

Oop 字段与局部变量?何时使用其中一种?,oop,refactoring,Oop,Refactoring,关于类字段和局部变量的使用,我有几个问题 什么时候应该将变量声明为字段或局部变量?当然,很明显,如果变量只存在于块或函数的范围内,那么变量只应该是局部变量 如果在重构一个函数后,大函数被拆分成 几个私有函数——这是否足以成为 将局部变量提升到字段中?可读性如何? 在私有函数之间传递局部变量是否更好 在使用相同局部变量的函数中提取类是否可行,而不是将其提升到字段中 任何你能阐述的相关话题都会很好 当变量表示实例的*状态*时,将其声明为字段 被拆分的大型函数不足以将局部变量提升到字段中。对可读性

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

  • 什么时候应该将变量声明为字段或局部变量?当然,很明显,如果变量只存在于块或函数的范围内,那么变量只应该是局部变量
  • 如果在重构一个函数后,大函数被拆分成 几个私有函数——这是否足以成为 将局部变量提升到字段中?可读性如何?
  • 在私有函数之间传递局部变量是否更好
  • 在使用相同局部变量的函数中提取类是否可行,而不是将其提升到字段中
任何你能阐述的相关话题都会很好

  • 当变量表示实例的*状态*时,将其声明为字段
  • 被拆分的大型函数不足以将局部变量提升到字段中。对可读性和可维护性的影响太大:
  • 程序员将始终需要推理这些字段是状态的一部分,还是只是一些临时的计算助手
  • 很多很多,因为任何并发方法调用都使用相同的字段
  • 将变量从一个内部方法传递到另一个内部方法有助于:
  • 独立理解方法的确切功能
  • 重复使用内部方法
  • 内部方法的单元测试
  • 是的,传递局部变量
  • 如果这样的变量太多,通常会将它们分组到一个方便的helper类中,该类充当结构。它增加了可读性并简化了使用