Design Pattern: Blind Builder
programmers.stackexchange.com