Este padrão de design ajudará você a criar objetos ou classes semelhantes tipo, quando você não sabe exatamente que tipo você será finalmente ou o que você vai usar.
De acordo com você, criando seu projeto, você decidirá que você vai instanciar.
Classe ou objetos semelhantes, eu lhe darei um exemplo:
// 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; }}
Como vemos, os objetos declarados são objetos semelhantes, estão relacionados e compartilham-se, neste caso, o texto variável.
// 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') );
Isso chamará o método que decidimos sobre a nossa função e uma vez que a condição se a condição for passada, ela criará um A nova instância do HeadingHtML, por sua vez, obtendo o texto (bem-vindo), obtendo como resultado um objeto que contém um H1.
HeadingHTML {texto: "Bienvenidos", tipo: "h1"}
Em resumo
a fábrica abre uma gama de possibilidades ao trabalhar com objetos semelhantes sem ter que duplicar código, Você só deve instantâneo!