English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explicación detallada del patrón Singleton y el patrón de fábrica en PHP

Concepto del patrón de singleton

El patrón de singleton es un patrón de diseño en el que toda la aplicación tiene solo una instancia de objeto de clase.

Características del patrón de singleton

Una clase tiene solo una instancia en toda la aplicación

La clase debe crear esta instancia por sí misma

Debe proporcionar esta instancia por sí mismo a todo el sistema

Razones para usar el patrón de singleton en PHP

Usé PHP la mayor parte de las operaciones son con varias bases de datos, incluyendo mysql, redis, memcache y otras bases de datos relacionales y no relacionales, por lo que en una aplicación puede haber muchas operaciones de conexión a bases de datos, si no se utiliza el patrón de singleton, cada vez que se debe realizar una operación new, pero cada vez new consume una gran cantidad de recursos de memoria y recursos del sistema, y cada vez que se abre y cierra la conexión a la base de datos es un gran desafío y desperdicio para la base de datos.

Se necesita una variable miembro estática única para almacenar la única instancia de la clase (generalmente $instance es una variable privada)

El constructor y la función de clonación deben declararse como privadas, para evitar que el programa externo new la clase y pierda el significado del patrón de singleton

Debe proporcionar un método público estático de acceso a esta instancia, devolviendo una referencia a la única instancia

//Patrón de diseño
//El patrón de singleton utiliza el mismo objeto
//class Ren
//{
// public $name;
// private static $dx; //Almacenar objeto
//
// private function __construct()
// {
//
// }
//
// public static function DuiXiang()
// {
//  if(empty(self::$dx))
//  {
//   self:;$dx=new Ren();
//  }
//  return self::$dx;
// }
//}
//
//$r= Ren::DuiXiang();
//Hizo que el constructor sea privado
//Hizo un método para construir objetos indirectamente
//Agregar restricciones dentro de este método

Clase fábrica

Es una clase que contiene un método específico utilizado para crear otros objetos, la clase fábrica es crucial en la práctica de programación polimórfica, ya que permite reemplazar dinámicamente las clases, modificar la configuración y generalmente hace que las aplicaciones sean más flexibles, es muy importante que los desarrolladores avanzados de PHP dominen el patrón de fábrica.

El patrón de fábrica se utiliza generalmente para devolver diferentes clases que cumplen con una interfaz similar. Una uso común del patrón de fábrica es crear proveedores polimórficos, lo que permite decidir qué clase instanciar basándose en la lógica de la aplicación o en la configuración. Por ejemplo, se puede usar tal proveedor para expandir una clase sin necesidad de reconstruir otras partes de la aplicación, utilizando el nombre extendido nuevo.

Por lo general, el patrón de fábrica tiene una estructura clave, nombrada según el principio general como método estático 'Factory', sin embargo, esto es solo un principio, el método de fábrica puede tener cualquier nombre y puede aceptar cualquier parámetro de datos, debe devolver un objeto.

class YunSuan
{
 public $a;
 public $b;
 function Suan()
 {
  echo "Operación de dos números";
 }
class gongchang
{ //Función: Dado un parámetro, devuelve un objeto
 static function chanpin($name)
 {
  switch($name)
  {
   case "'+:
    return new jia();
    break;
   case "-";
    return new jian();
    break;
  }
 }
}
$a=gongchang::chanpin("+");

Esto es todo el contenido del artículo. Esperamos que el contenido de este artículo pueda proporcionar cierta ayuda en su aprendizaje o trabajo. También esperamos que nos apoyen y nos alienten en el tutorial de clamor!

Aviso: El contenido de este artículo se ha obtenido de la red, es propiedad del respectivo propietario. El contenido ha sido proporcionado por usuarios de Internet y subido por ellos mismos. Este sitio web no posee los derechos de propiedad, no ha sido editado artificialmente y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#w para denunciarlo. Una vez verificado, este sitio eliminará inmediatamente el contenido sospechoso.3Declaración: El contenido de este artículo se ha obtenido de la red, es propiedad del respectivo propietario. El contenido ha sido proporcionado por usuarios de Internet y subido por ellos mismos. Este sitio web no posee los derechos de propiedad, no ha sido editado artificialmente y no asume ninguna responsabilidad legal relacionada. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#w con el fin de denunciarlo y proporcionar pruebas. Una vez verificado, este sitio eliminará inmediatamente el contenido sospechoso.

Te gustará