Pregunta

Si se usa la función de AutoOoGer (con SPL_AUTOUTOAD_REGISTE), ¿se necesita más:

  • Singleton: todas las clases necesarias se cargarán por AutoOoGer de todos modos, incluida la base de datos, los registros, R & R, los frentes, etc., por lo que es necesario que el objeto "SIEMPRE ON", etc. no está claro para mí
  • Fábrica: Nuevamente, Autoaader cargará la clase requerida, por lo que hay un punto para usar la clase de fábrica para crear una instancia de las clases de trabajadores de la interfaz de implementación, o extender la clase abstracta
¿Fue útil?

Solución

Se usa un singleton para mantener una sola instancia de una clase en particular, de modo que cada vez que se recupere la instancia, siempre será la misma. Por lo tanto, establecer datos significará que los datos siempre son los mismos cuando lo recupere.

Esto es diferente de la carga automática de una clase, ya que cada vez que cree una nueva instancia, restablece el estado al valor predeterminado de la clase. Aún así, los singletos deben usarse con moderación, ya que son variables globales esencialmente glorificadas.

Se debe utilizar un patrón de fábrica para delegar la determinación y creación de objetos. Se usa cuando no desea especificar una clase de concreto, pero requiere una determinada subclase en un conjunto de condiciones. No puede pasar parámetros de construcción a un autocargador, y es posible que se requiera alguna lógica compleja para funcionar qué objeto debe devolverse de una fábrica, por lo que nuevamente no lo logra lo mismo.

Un autocargador debe usarse para encontrar un archivo de clase e incluirlo. No debería (y no puede) hacer ninguna lógica, como la creación de un objeto o tomar decisiones sobre qué objeto cargar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top