Builder Pattern
Created by Manfred Wolff
Inhalt
Verweise
STATUS
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; }