Utilizamos generalmente Builder en Java, así:¿Cuál es la manera correcta de construir el patrón?
UserBuilder userBuilder = new UserBuilder();
User John = userBuiler.setName("John")
.setPassword("1234")
.isVip(true)
.visableByPublic(false)
.build();
Algunos de los atributos tienen valor por defecto, y algunos no lo tienen.
atributos Pasando en un mapa puede ser una solución, pero hace que el argumento realmente ya:
(def john (make-user {:name "John" :pass "1234" :vip true :visible false}))
lo tanto, mi pregunta es, ¿hay una manera elegante para lograr esto?
La Builder es en mi opinión es sólo un trabajo en torno a la falta de parámetros con nombre. Inicializar un conjunto de campos que se distinguen solo como argumentos posicionales es extremadamente engorroso y muy difícil de leer más tarde, de ahí el patrón del constructor. La desestructuración de mapas logra los mismos objetivos en una sola invocación de función, ya que Ankur sugiere dividir un mapa en múltiples líneas para mantener la legibilidad. –