Descrição do modo de aparência
NOTA: O modo de aparência é uma interface de alto nível fornecida por uma composição complexa de subsistema ou programa, facilitando o acesso ao programa subjacente ou interface do sistema usando o cliente;
O modo de aparência é um padrão que frequentemente encontramos. As funções que geralmente envolvem podem envolver várias subinterfaces ou subsistemas, enquanto uma certa função da nossa pode exigir que isso seja encapsulado na ordem de uma ou várias subinterfaces múltiplas. Se a função de negócios corresponde diretamente à subinterface ou subsistema, o desenvolvedor pode precisar ter uma compreensão considerável do conteúdo interno; Pode ser necessário entender como é o processo de negócios, qual é a sua ordem etc. Isso exige que os desenvolvedores entendam o negócio e também torne a programação do cliente bastante complicada;
Se houver uma camada ou uma classe aqui que forneça especificamente o método que desejamos usar para encapsulá -la, a função do cliente só precisa interagir com essa classe de camada intermediária e os métodos correspondentes da classe de camada intermediária têm desenvolvedores relacionados que entendem o encapsulamento da organização comercial, o programa se tornará muito simples. O programador só precisa saber qual método é necessário para sua função e não precisa conhecer a lógica interna.
Esta classe de camada intermediária é o que chamamos de classe de aparência, que é a idéia do padrão de aparência.
Exemplo de cena:
1>. Por exemplo, o interruptor mestre, esse interruptor mestre pode controlar uma luz na porta da casa, algumas luzes no salão e controlar a fonte de alimentação da TV doméstica, geladeira etc. se você pressionar "ligado", o que terá eletricidade e até emitirá diretamente a transmissão de luz e calor. Você não precisa saber como o botão do botão mestre é lançado ou como ele é pressionado aos aparelhos elétricos relevantes. De qualquer forma, você vai chamá -lo diretamente.
Essas luzes, TVs, etc. são as interfaces e pequenos sistemas que queremos usar; Este Switch Master é a nossa aparência e podemos operá -lo diretamente.
2>. É bom que uma empresa tenha vários departamentos funcionais. Quando o chefe precisa da implementação de vários aspectos do trabalho, um por um, ele irá ao departamento e perguntará a um funcionário como isso está fazendo. Se ele perguntar à pessoa certa, poderá responder diretamente ao chefe. Se essa pessoa for responsável, ele também dirá ao chefe: "Oh, que é responsável por esse assunto, e o chefe deve correr para perguntar à pessoa, é tão problemático".
Se cada departamento funcional tiver um supervisor, o chefe poderá simplesmente ir e descobrir a situação. O chefe não precisa se preocupar com a forma como a pessoa responsável sabe disso. Ele só quer saber a situação de 1, 2 e 3 coisas e seguir o progresso.
Código fonte da instância
Agora implemente o código -fonte de acordo com o cenário da segunda instância:
1. Várias funções departamentais:
Departamento 1 (Departamento de Negócios):
A cópia do código é a seguinte:
função BusinessDept () {
this.manager = 'gerente chen'; // pessoas responsáveis
}
BusinessDept.prototype = {
MESESALES: function () {
console.log (this.manager + 'diga: as vendas deste mês são xxx');
},
NextPlan: function () {
console.log (this.manager + 'diga: o próximo plano é assim, xxxx');
}
}
Departamento 2 (Departamento de P&D):
A cópia do código é a seguinte:
função rddept () {
this.manager = 'gerente huang';
}
Rddept.prototype = {
Progresso: function () {
console.log (this.manager + 'diga: a situação atual do projeto e o progresso são assim xxx');
},
DeptPlan: function () {
console.log (this.manager + 'diga: o próximo plano de departamento é assim xxx');
}
}
O exposto acima são as perguntas que os supervisores de cada departamento precisam responder ao chefe;
Em seguida, estabeleça a categoria de aparência para organizar as perguntas que seu chefe deseja fazer;
A cópia do código é a seguinte:
function fachade () {
this.business = new BusinessDept ();
this.rddept = new rddept ();
}
Facade.prototype = {
Departamento de Departamento: Function () {
this.business.monthsales (); // O gerente de vendas dirá primeiro;
this.rddept.Progress ();
},
DeptPlan: function () {
this.business.NextPlan (); // relate o próximo plano;
this.rdDept.DeptPlan ();
}
}
Em seguida, o chefe ligou para os dois gerentes à sua frente e começou a fazer perguntas:
A cópia do código é a seguinte:
var fachada = nova fachada ();
console.log ('O chefe perguntou: agora apresente a situação do seu departamento?');
fATABADE.DEPTSITUSTION ();
console.log ('Boss perguntou: Quais são os planos a seguir?');
Facade.DeptPlan ();
Outras instruções
O uso do modo de aparência pode fazer interfaces ou classes dissociadas, para que não haja necessidade de dependência entre as classes. Quando é desnecessário usar, a deve incluir B ou B deve incluir A. Isso viola o princípio de fechar a modificação. O uso de invólucros de classe de aparência intermediária da camada pode simplificar as chamadas de interface e o uso de subinterfaces ou chamadas de objetos do subsistema se torna mais livre e organizado.
O modo de aparência geralmente aparece em nossa programação, e o modo de aparência é frequentemente usado na definição de padrão do sistema de arquitetura. Nosso sistema precisa usar serviços de interface de terceiros e geralmente adicionar uma camada de aparência para organizar interfaces de negócios disponíveis;