【问题标题】:Using Getter Method vs Field Within Same Class在同一类中使用 Getter 方法与字段
【发布时间】:2014-01-13 03:51:27
【问题描述】:

此问题旨在解决在单独的方法中调用类中的 Getter 方法与引用特定字段 之间是否存在性能差异或是否存在通用标准。使用 Java 作为示例语言...

public class Person {
   String firstName = "";
   String lastName = "";

   // Insert Constructor

   public String getFirstName() { return firstName; }
   public String getLastName() { return lastName; }

   @Override public String toString() {

      return "First Name: " + getFirstName() + "\nLast Name: " + getLastName());
      // OR
      return "First Name: " + firstName + "\nLast Name: " + lastName);
   }

}

它可能看起来很小,但我一直想知道在类内部对 getter 方法的方法调用是否对机器来说是额外的工作。有人知道一个电话对另一个电话是否有影响?

【问题讨论】:

    标签: oop coding-style refactoring standards


    【解决方案1】:

    这取决于。这取决于语言以及该语言是否在优化的虚拟机上运行。如果您使用的是基于 JVM 的语言,使用标准的 Oracle JVM,那么在几次方法调用之后,函数开销将被优化掉。

    也就是说,如果您要通过继承执行类似的操作,那么我建议始终使用“getter”,以便覆盖尊重子类可能带来的字段的新视图。

    【讨论】:

    • 等效的设置器也应该用于设置字段以对参数执行任何验证和约束
    • @dkatzel 如果您使用可变数据结构,无论出于何种原因,都很好。
    猜你喜欢
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 2018-01-21
    相关资源
    最近更新 更多