【发布时间】:2019-09-08 22:56:04
【问题描述】:
public class Employee {
private String name;
private String address;
private int id;
public Employee() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Employee [name=" + name + ", address=" + address + ", id=" + id + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
public class Main {
public static void main(String[] args) {
Employee e = new Employee();
e.setName("Priyanka");
Employee e1 = new Employee();
e1.setName("Rahul");
e1.setAddress("Delhi");
System.out.println("Value of e :"+ e);
System.out.println("Value of e1:"+ e1);
}
}
【问题讨论】:
-
Setter 并不能保证你得到的物品是有效的。他们不能。建设者可以。假设您忘记调用
employee.setId(),那么您将获得一个属性为空值的对象。而如果你这样做employeeBuilder.build(),你可能会得到一个异常,或者可能只是自动将 ID 设置为下一个可用的 - 不应该在 Employee 对象中的逻辑。
标签: java design-patterns