gpt4 book ai didi

java - java构造函数中的参数很多

转载 作者:行者123 更新时间:2023-12-01 19:55:50 25 4
gpt4 key购买 nike

嗨,我是 java 的初学者。

这是像在我的 BookLibrary 程序中那样创建具有许多参数的构造函数的好方法吗?

public class Book implements Serializable {

private String title;
private String directorName;
private String directorSurname;
private String type;
private int issueYear;
private List<String> actorNames;
private List<String> actorSurnames;
private Tuple<String, String> directorFullName;


public Book(String title, String directorName, String directorSurname, String type, int issueYear,
List<String> actorNames, List<String> actorSurnames, Tuple<String, String> directorFullName){
this.title = title;
this.directorName = directorName;
this.directorSurname = directorSurname;
this.type = type;
this.issueYear = issueYear;
this.actorNames = actorNames;
this.actorSurnames = actorSurnames;
this.directorFullName = directorFullName;
}

或者有更好的想法来创建这样的构造函数吗?

最佳答案

正如其他人在评论中已经说过的那样,使用构建器模式将是一种选择。但如果处理不当,就会带来创建不完整对象的风险。

但是还有更多方法可以改进您的设计。例如。您将名字和姓氏(以及导演的全名 - 为什么只在那里?)作为单独的字符串传递。我将创建一个 PersonName 类来封装这些不同的命名元素,因此您的构造函数将变为:

public Book(String title, 
PersonName directorName,
String type,
int issueYear,
List<PersonName> actors) {
...
}

看起来更好并且使命名问题更加一致。

当然,将该类重命名为 Movie 而不是 Book

关于java - java构造函数中的参数很多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com