jueves, 5 de julio de 2018

Capítulo 33: Design Patterns - Factory Method - TDD By Example

Cuando se requiere de flexibilidad a la hora de crear un nuevo objeto se puede crear este en un método en vez de usar el constructor.

Los constructores no son expresivos mientras que los método pueden comunicar la intención. Además, tiene la ventaja que el método no tiene porqué devolver la misma clase si no que puede utilizar una clase diferente para crear el objeto.

En el ejemplo de la clase «Money» se podía devolver un objeto de una clase diferente. Se tenía la siguiente prueba.

Se quería introducir la clase «Money» pero existía el bloqueo de crear una instancia de «Dollar». Este bloqueo se podría solventar añadiendo un nivel de indirección a través de un método de manera que se puede ganar la flexibilidad de devolver un objeto de una clase diferente sin cambiar la prueba.

Este método se llama factoría porque crea objetos.

El inconveniente de usar «Factory Pattern» es precisamente su indirección y recordar que el método está creando un objeto aunque no se vea como un constructor. Este patrón sólo se debería usar cuando se necesite la flexibilidad de crear nuevos objetos. De otra manera, los constructores funcionan bien para crear objetos.

No hay comentarios:

Publicar un comentario