Los named constructors, o "métodos factoría" son pequeñas funciones estáticas que hacen las de generador de instancias de una determinada clase. Al fin y al cabo, nos permiten que nuestros constructores sean más semánticos y robustos. Esto nos permite ganar robustez y semántica en los contratos de los métodos creadores de instancias. En el vídeo de hoy veremos dos ejemplos prácticos donde se podrían aplicar: Un modelo de dominio User, y una excepción de dominio.
" />Aquí os dejo el enlace al vídeo sobre el Single Responsibility Principle que se referencia al inicio del capítulo de esta semana :) Añadir también un pequeño matiz de los que me doy cuenta tras grabar el vídeo: También podríamos reconstruir el estado de una instancia a través de reflexión. Lenguajes como PHP y Java permiten modificar la visibilidad de los atributos parar así poderlos modificar. Como me comentaba Sergi, esta técnica la usan algunos ORMs para mapear registros de base de datos a entidades de nuestro sistema sin necesidad de mantener el constructor público tal y como planteábamos en el vídeo. Magia fina. Para más información, aquí os dejo el detalle de refactoring "Reemplazar constructor con método factoría", ejemplos del patrón en Java, y un post con la explicación por parte de Mathias Verraes. Preguntas pendientes:
- ¿Cuándo es malo usar una función estática?
- ¿Cómo podríamos respetar ISP y SRP en este diseño de clases?
Podéis responder en los mismos comentarios de los vídeos :)