public class PersonBuilder {
private String name;
//... male, salary
public void setName(String name) {...}
public void setGender(boolean male) {...}
public void setSalary(double salary) {...}
public Person getPerson() {
// it can perform necessary checks
// and refuse to create unless fulfilled
return new Person(name, male, salary);
}
}