【发布时间】:2018-04-12 10:04:06
【问题描述】:
您好,我是 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;
}
或者有没有更好的办法来创建这样的构造函数?
【问题讨论】:
-
首先检查你的逻辑。书籍没有导演和演员,因此添加其中任何一个都不合逻辑。
-
让 setter 每个 setter 返回
this并且在设置字段时,您可以链接这些 setter。如果有一些必填字段,没有哪个对象没有意义,那么您可以对这些字段使用构造函数,而其余的则使用 setter 方法,或者您也可以使用 Builder 模式 -
在这种情况下您应该考虑使用构建器设计模式
标签: java constructor