Resumo dos padrões de design javascript

1. Implementar o modo singleton
deixando Singleton = function (name) {
this.name = name;
this.instance = null;
}

Singleton.prototype.getName = function () {
console.log (this.name)
}

Singleton.getInstance = function (name) {
if (! This.instance) {
this.instance = new Singleton (name)
}
return this.instance;
}

deixe a = Singeton.getInstance ('hello world')

Em segundo lugar, a
função javascrip do modo de estratégia também é um objeto, portanto você pode definir funções com objetos como
let Strategies = {
"type1": (salary) => {
return salary 1
},
"type2": (salary) => {
return salary
2
}
"type3": (salário) => {
salário de retorno * 3
}
}

deixe calcular = função (nível, salário) { nível de
estratégias de retorno }

Terceiro, o modelo de agência

Não é para operar no objeto original, consulte outro objeto para operação

deixe fruta = função (nome) {
this.name = nome;
}

fruit.prototype.getName = function () {
return this.name;
}

deixe as pessoas que querem comer maçãs = {
gouBuy: (nome) => {
console.log ('Compre-me algumas maçãs' + nome)
}
}

deixe comprar = {
buyCosmetic: function (fruit) {
Want to apple people.gouBuy (fruit.getName ())
}
}

purchase.buyCosmetic (fruta nova ('maçã'))

Quarto, o modo iterativo
deve corresponder aos requisitos funcionais que são atendidos por meio do loop
ar getActiveUploadObj = function () {
try {
return new ActiveXObject ("TXFTNActiveX.FTNUpload"); // IE upload control
} catch (e) {
return false;
}
};
var getFlashUploadObj = function () {
if (supportFlash ()) {// A função supportFlash não é fornecida
var str = '<object type = "application / x-shockwave-flash"> </object>';
return $ (str). appendTo ($ ('body'));
}
return false;
};
var getFormUpladObj = function () {
var str = '<input name = "file" type = "file" class = "ui-file" />'; // upload do formulário
return $ (str) .appendTo ($ ('body'));
};

Quarto, o modelo publicar-assinar O modelo
publicar-assinar também é chamado de modelo observador. Ele define uma relação de dependência um-para-muitos entre os objetos. Quando o estado de um objeto muda, todos os objetos que dependem dele são notificados. No desenvolvimento de JavaScript, geralmente usamos o modelo de evento para substituir o modelo tradicional de publicar-assinar.
var event = {
clientList: [],
listen: function (key, fn) {
if (! this.clientList [key]) {
this.clientList [key] = [];
}
this.clientList [key] .push (fn ); // A mensagem assinada é adicionada à lista de cache
},
gatilho: function () {
var chave = Array.prototype.shift.call (argumentos), // (1);
fns = this.clientList [chave];
if ( ! fns || fns.length === 0) {// Se a mensagem correspondente não estiver vinculada,
retorne falso;
}
for (var i = 0, fn; fn = fns [i ++];) {
fn.apply (this, argumentos); // (2) // argumentos são os parâmetros trazidos quando o gatilho é
}
}
};
Defina outra função installEvent, que pode instalar dinamicamente funções publicar-assinar para todos os objetos:
var installEvent = function (obj) {
for (var i in event) {
obj [i] = event [i];
}
};

5. Modo de comando O modo de
comando é um dos modos mais simples e elegantes.O comando no modo de comando refere-se a
uma instrução para realizar algumas coisas específicas.
O modo de comando é dos cenários mais comuns: às vezes precisa enviar uma solicitação para determinados objetos, mas não sabe receber a solicitação
quem é quem, não sabe o que foi solicitado operação sim. Neste momento, de uma maneira fracamente acoplada desejável para projetar programas, tal pedido é enviado ao
emissor e ao receptor do pedido para eliminar o acoplamento entre um e outro. Por exemplo

var bindClick = function (button, func) {
button.onclick = func;
};
var MenuBar = {
atualizar: function () {
console.log ('Atualizar interface do menu');
}
};
var SubMenu = {
add: function ( ) {
console.log ('Adicionar submenu');
},
del: function () {
console.log ('Excluir submenu');
}
};
bindClick (button1, MenuBar.refresh);
bindClick (button2, SubMenu. add);
bindClick (button3, SubMenu.del); O
modo de comando é um modo invisível na linguagem JavaScript.

6. Modo de combinação O modo de
combinação usa pequenos subobjetos para construir objetos maiores, e esses pequenos subobjetos podem ser compostos de
"netos" menores. Estrutura de árvore

Objetivo: Representa parte da hierarquia geral do objeto. O modo combinado pode construir facilmente toda a parte do objeto representado por uma
estrutura de árvore . Especialmente quando não temos certeza de quantos níveis dessa árvore existem durante o desenvolvimento. Na maior parte da estrutura em árvore
após a conclusão da final, apenas as solicitações de objeto mais no topo da árvore podem unificar a operação de toda a árvore. No modo de combinação,
onde você adiciona e exclui nós da árvore, é muito conveniente e está em conformidade com o Princípio Aberto e Fechado.
O cliente deseja tratar todos os objetos da árvore de maneira uniforme. O modo composto permite que os clientes ignorem a diferença entre objetos compostos e objetos folha.
Ao encarar esta árvore , os clientes não precisam se preocupar se o objeto atualmente em processamento é um objeto composto ou um objeto folha, então eles
não precisam escrever um monte de instruções if e else para distinguir entre eles. Lide com eles. O objeto composto e o objeto folha farão suas próprias coisas certas,
que é a habilidade mais importante do modelo composto.

Acho que você gosta

Origin blog.51cto.com/14582569/2594371
Recomendado
Clasificación