175. Implementing the Cascaded Builder pattern

We already talked about this pattern in Chapter 2, Objects, Immutability, and Switch Expressions, in the Writing an immutable class via the Builder pattern section. It is advisable to treat this problem, just as a quick reminder of the Builder pattern.

Having the classic Builder under our tool belt, let's suppose that we want to write a class for delivering parcels. Mainly, we want to set the receiver's first name, last name, address, and parcel content and then deliver the parcel.

We can accomplish this via the Builder pattern and lambdas, as follows:

public final class Delivery {

public Delivery firstname(String firstname) {
System.out.println(firstname);

return this;
}

//similar for lastname, address and content

public static void deliver(Consumer<Delivery> parcel) {
Delivery delivery = new Delivery();
parcel.accept(delivery);

System.out.println(" Done ...");
}
}

For delivering a parcel, we simply use a lambda:

Delivery.deliver(d -> d.firstname("Mark")
.lastname("Kyilt")
.address("25 Street, New York")
.content("10 books"));

Obviously, using lambdas is facilitated by the Consumer<Delivery> argument.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset