package org.test.customer
class Customer {
public final String _firstName;
public final String _lastName;
Customer(String first, String last) {
doSmthBefore();
_firstName = first;
_lastName = last;
doSmthAfter();
}
public String getFirstName() {
return _firstName;
}
public String getLastName() {
return _lastName;
}
private void doSmthBefore() {}
private void doSmthAfter() {}
}
class CustomerBuilder {
public String _firstName = "Homer";
public String _lastName = "Simpson";
public CustomerBuilder WithFirstName(String firstName) {
_firstName = firstName;
return this;
}
public CustomerBuilder WithLastName(String lastName) {
_lastName = lastName;
return this;
}
public Customer Build() {
return new Customer(_firstName, _lastName);
}
}
public class User {
public static void main(Array[String] args) {
Customer customer = new CustomerBuilder()
.WithFirstName("Homer")
.WithLastName("Simpson")
.Build();
System.out.println(customer.getFirstName());
System.out.println(customer.getLastName());
}
}