Questo modello di progettazione ti aiuterà a creare oggetti o classi simili tipo o classi, quando non sai esattamente quale tipo sarà finalmente o cosa userete.
Secondo te, creando il tuo progetto, deciderà quale stai per istanziare.
classe o oggetti simili, ti darò un esempio:
// Imaginemos que tenemos una pequeña app que crea Websfunction constructorSitios() { // creamos el método this.crearElemento = (texto, tipo) => { let html; if (tipo === 'input'){ html = new InputHTML(texto) } else if (tipo === 'img'){ html = new ImangenHTML(texto) } else if (tipo === 'h1'){ html = new HeadingHTML(texto) } else if (tipo === 'p'){ html = new ParrafoHTML(texto) } html.tipo = tipo; return html; }}
Come vediamo, gli oggetti dichiarati sono oggetti simili, sono correlati e condividono se stessi, in questo caso il testo variabile.
// Ahora imaginemos que necesitamos crear un H1// Creamos el constructor HeadingHTMLconst HeadingHTML = function(texto){ this.texto = texto;};const sitioWeb = new constructorSitios();sitioWeb.crearElemento('Bienvenidos', 'h1') );
Chiamerà il metodo che decidiamo sulla nostra funzione e una volta che la condizione se sarà passata, creerà A Nuova istanza di Headinghtml, a turno il testo (Benvenuto), ottenendo come risultato un oggetto che contiene un H1.
HeadingHTML {texto: "Bienvenidos", tipo: "h1"}
In sintesi
La fabbrica apre una serie di possibilità quando si lavora con oggetti simili senza dover duplicare il codice, Dovresti solo immediato!