franciscogazitua / IIC2113-2024

Consultas sobre el proyecto en las Issues
4 stars 0 forks source link

Número de argumentos a constructor en Clean Code. #55

Open EduardoCaceres5566 opened 6 months ago

EduardoCaceres5566 commented 6 months ago

En el clean code dice que deberíamos preferir funciones con menos argumentos, raramente usando hasta 3. ¿Cuándo llamo un new y le tengo que pasar datos a un objeto o una data structure, es clean code válido pasarle más de 3? O existe alguna otra forma de pasarle toda la información?

Por ejemplo, tengo una data structure que toma toda la información de una habilidad de modificación de stat. Entonces se le pasa el tipo de modificacion (bonus o penalty), que stats se va a aplicar a, a qué unidad se aplica, con que condición se aplica, etc.

RodrigoToroIcarte commented 6 months ago

El ideal es minimizar el número de argumentos. En ese sentido, si es fácil tener el constructor con menos argumentos hay que hacer eso. De hecho el libro tiene un ejemplo así:

Screenshot from 2024-04-26 18-31-43

Aquí MakeCircle(...) fácilmente pudo ser el constructor de la clase Circle.

Dicho eso, la creación de objetos se trata como un caso especial en nuestra rúbrica. Muchas veces no aplicamos descuentos por constructores que reciben más de 3 argumentos porque, a veces, para crear el objeto se necesitan varios datos. Y no hay mucha vuelta que darle :P