java - 通过构造函数传递值的最佳实践 - JAVA

标签 java

分配通过构造函数传递的值的最快/最优雅的方法是什么?

例如,如果我有以下类(class):

public MyClass {

    private String firstName;
    private String middleName;
    private String lastName;
    private int age;
    private int birthDay;
    private int birthMonth;
    private int birthYear;

    public MyClass(String firstName, String middleName, String lastName, 
                   int age, int birthDay, int birthMonth, int birthYear) {
        this.firstName = firstName;
        this.middleName = middleName;
        this.lastName = lastName;
        this.age = age;
        this.birthDay = birthDay;
        this.birthMonth = birthMonth;
        this.birthYear = birthYear;
    }

}

这真的是将所有值分配给类的最佳方式吗?看起来非常臃肿和多余。

还有其他方法可以减少冗余吗?

最佳答案

我认为这里的问题不在于分配,而在于该类必须管理的不同字段的数量。在我看来,我们正在管理一个名称和一个日期 - 其中每个都可以是一个类的单个实例,一个您自己创建的 Name 类和一个 java.util.Date 。 (或者如果您需要更奇特的东西,也可以是更奇特的东西)。

age 是根据生日和今天的日期直接计算的,可以省略。

这样做将使您能够将一些复杂性(管理名称打印、进行日历算术)降低到可以而且应该专门解决​​这些特定问题的类中。

关于java - 通过构造函数传递值的最佳实践 - JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47733688/

相关文章:

java - 如何使用 Rhino 执行 JavaScript 库并在 JavaScript 库上调用 API 获取 HTML

java - JPA用户注册

java - 使用 ServerSocket 和 Socket 类从浏览器获取完整的 URL 路径

java - 如何在java中使用列名读取csv

java - 我的 EJB 应用程序未部署在 WebSphere 上?

java - 如何让线条动画更流畅?

java - 在文件中搜索单词会导致 java.util.NoSuchElementException

java - 如何在准备好的语句java中插入大整数

java - 如何用 Java 8 流替换下面的 for 循环代码

java - 无法加载方言 'org.drools.compiler.rule.builder.dialect.java.JavaDialectConfiguration:java:null'