具有多个参数的构造函数
Constructor with many parameters
我有一个 class 有(比方说)50 个字段。我只根据用户需要在每次部署程序时使用其中的几个。有没有办法让构造函数既通用又特定于部署?
例如
public class Employee{
private String id = "default";
private String empcat = "default";
private String empfam = "default";
private String phychar = "default";
private String othchar = "default";
private String shoesty = "default";
private Double shoesiz = 0.0;
private String shoesty = "default";
private Double shirsiz = 0.0;
private String shirsty = "default";
.........50 other fields..
}
"User/Customer 1" - 只想使用鞋子的程序,因此用 :
实例化对象
Employee obemp = new Employee("John", 11.5, Dockers); (即 id、shoesiz 和 shoesty)
User/Customer 2 - 只想使用衬衫的程序,因此用 :
实例化对象
Employee obemp = new Employee("John", 42, ABC); (即 id、shirsiz 和 shirsty)
User/Customer 3 - 只想将程序用于家庭,因此用 :
实例化对象
Employee obemp = new Employee("John", "Smith"); (即 id、empfam)
对象创建期间字段的顺序可能不同 - 取决于模型中的用法。
首先,我建议将您的主要 class 分解成更小的部分来管理通常在一起的数据(鞋子信息、衬衫信息、家庭信息等)。
其次,我建议您为客户提供 builder pattern 以便他们可以轻松地仅使用他们可能需要的部分来构建对象。这样,他们就可以做这样的事情:
Employee emp = new EmployeeBuilder("John")
.withShirtInfo(shirsiz, shirsty)
.build();
核心 java 中没有通用的方法来执行此操作。但是您可以使用一些设计模式,例如构建器模式。
您还可以创建一个 Employee
,其中包含一些最低标准,例如 - id
。我们可以假设每个 Employee
都有一个 id
。因此,使用 Employee(String id)
构造函数创建一个 Employee
和 id
-
public class Employee{
//all properties
public Employee(String id){
this.id = id;
}
//setter methods
}
假设您创建了一个像这样的 Employee
-
Employee employee = new Employee("eng134");
之后,您可以使用 setter 方法仅将必需的 属性 设置为 employee
对象 -
employee.setShoesiz(9);
employee.setShirsiz(26);
我有一个 class 有(比方说)50 个字段。我只根据用户需要在每次部署程序时使用其中的几个。有没有办法让构造函数既通用又特定于部署?
例如
public class Employee{
private String id = "default";
private String empcat = "default";
private String empfam = "default";
private String phychar = "default";
private String othchar = "default";
private String shoesty = "default";
private Double shoesiz = 0.0;
private String shoesty = "default";
private Double shirsiz = 0.0;
private String shirsty = "default";
.........50 other fields..
}
"User/Customer 1" - 只想使用鞋子的程序,因此用 :
实例化对象
Employee obemp = new Employee("John", 11.5, Dockers); (即 id、shoesiz 和 shoesty)
User/Customer 2 - 只想使用衬衫的程序,因此用 :
实例化对象
Employee obemp = new Employee("John", 42, ABC); (即 id、shirsiz 和 shirsty)
User/Customer 3 - 只想将程序用于家庭,因此用 :
实例化对象
Employee obemp = new Employee("John", "Smith"); (即 id、empfam)
对象创建期间字段的顺序可能不同 - 取决于模型中的用法。
首先,我建议将您的主要 class 分解成更小的部分来管理通常在一起的数据(鞋子信息、衬衫信息、家庭信息等)。
其次,我建议您为客户提供 builder pattern 以便他们可以轻松地仅使用他们可能需要的部分来构建对象。这样,他们就可以做这样的事情:
Employee emp = new EmployeeBuilder("John")
.withShirtInfo(shirsiz, shirsty)
.build();
核心 java 中没有通用的方法来执行此操作。但是您可以使用一些设计模式,例如构建器模式。
您还可以创建一个 Employee
,其中包含一些最低标准,例如 - id
。我们可以假设每个 Employee
都有一个 id
。因此,使用 Employee(String id)
构造函数创建一个 Employee
和 id
-
public class Employee{
//all properties
public Employee(String id){
this.id = id;
}
//setter methods
}
假设您创建了一个像这样的 Employee
-
Employee employee = new Employee("eng134");
之后,您可以使用 setter 方法仅将必需的 属性 设置为 employee
对象 -
employee.setShoesiz(9);
employee.setShirsiz(26);