Builder Pattern

Inhalt

 Einleitung

Aus Wikipedia:

Der Erbauer (englisch builder) ist ein Entwurfsmuster aus dem Bereich der Softwareentwicklung. Es gehört zur Kategorie der Erzeugungsmuster (englisch creational patterns) und trennt die Konstruktion komplexer Objekte von deren Repräsentationen, wodurch dieselben Konstruktionsprozesse wiederverwendet werden können.[1] Das Muster ist eines der sogenannten GoF-Muster (Gang of Four, siehe Viererbande).

Beispiel

public final class Product {

    private final String code;
    private final String name;

    public static Product.ProductBuilder builder() {
        return new Product.ProductBuilder();
    }

    public static class ProductBuilder {
        private String code;
        private String name;

        ProductBuilder() {
        }

        public Product.ProductBuilder code(final String code) {
            this.code = code;
            return this;
        }

        public Product.ProductBuilder name(final String name) {
            this.name = name;
            return this;
        }

        public Product build() {
            return new Product(this.code, this.name);
        }

    }
}

Über Lombock können diese Builder automatisch in den Code gewebt werden. 

public class ProductTest {

    @Test
    public void builder() {

        Product product = Product.builder()
                .code("123456")
                .name("Mannes Kamera")
                .build();

        assertThat(product.getCode(), is("123456"));
        assertThat(product.getName(), is("Mannes Kamera"));

    }
}


@Builder
@Data
public class Product {

    private String code;
    private String name;
}