Паттерн Builder.

Когда стоит использовать?

Этот паттерн инкапсулирует создание объекта и делит его на этапы. Используют его в 2х случаях:

  1. Когда процесс создания объекта не должен зависеть от того из каких частей состоит объект (и как эти части связаны).

  2. Когда нужно обеспечить получение разных вариаций объекта в процессе его создания.