Builder Pattern in Java: Explanation & Practice

Implement the builder design pattern

Problem summary

Create a Pizza class with a Builder that allows setting size, cheese, pepperoni, and mushrooms.

Starter code

class Pizza {
    // Fields: size, cheese, pepperoni, mushrooms
    // Private constructor
    // Builder inner class
}

public class Main {
    public static void main(String[] args) {
        Pizza pizza = new Pizza.Builder("Large")
            .cheese(true)
            .pepperoni(true)
            .mushrooms(false)
            .build();
        
        System.out.println(pizza);
        // Output: Pizza: Large, Cheese: true, Pepperoni: true, Mushrooms: false
    }
}

Expected output and test cases

  • Builder constructs pizza correctly
    Pizza: Large, Cheese: true, Pepperoni: true, Mushrooms: false

Hints

  1. Builder class with same fields
  2. Each setter returns Builder for chaining
  3. build() returns new Pizza with Builder's values

Related OOP Basics exercises

Practice all OOP Basics exercises · Run this idea in the Java compiler