2011-07-18 9 views

Respuesta

12

Aunque puede haber ocasiones en que el patrón de fábrica no es necesario donde puede ser necesario en otros idiomas, todavía hay ocasiones en las que sería válido usarlo; podría ser una forma de hacer que su API sea más limpia - por ejemplo, como una forma de prevenir la duplicación de código que decide cuál de una serie de subclases devolverá.

del artículo de Wikipedia se conectó:

utilizar el patrón de fábrica cuando:

  • La creación del objeto impide la reutilización sin duplicar significativamente código.
  • La creación del objeto requiere acceso a información o recursos no apropiados para contener dentro del objeto de composición.
  • La gestión de vida de los objetos creados debe centralizarse para garantizar un comportamiento coherente.

Todos estos pueden aplicarse cuando el idioma es pato tipado.

+0

Tienes razón. Pensé que el patrón de fábrica solo se basa en el tipo de objeto devuelto por el método create de la clase de fábrica. Obviamente, hay más razones para usar el patrón cuando sea apropiado. –

4

No es exactamente una fábrica clase, pero la biblioteca estándar de Python tiene al menos un método de fábrica: http://docs.python.org/library/collections.html#collections.namedtuple.

Y luego, por supuesto, está el hecho de que puede crear clases dinámicamente usando the type() builtin.

No diría que carecen de sentido, ya que Python ofrece una gran cantidad de posibilidades para el tipo de fábricas que puede crear. Es comparativamente simple incluso escribir una clase de fábrica que crea clases de fábrica como instancias que pueden llamarse a sí mismas.

Cuestiones relacionadas