Descrição do modo construtor
1. Separe a construção de um objeto complexo de sua representação, para que o mesmo processo de criação possa ter representações diferentes. Isso é chamado de padrão do construtor.
2. Descrição em linguagem orientada a objetos, principais papéis:
1>. A classe de interface do construtor define o construtor [trabalhador], um modo de comportamento unificado e operacional, que representa um objeto estrutural complexo;
2>. ConcreteBuilder é usado para criar objetos de instância de várias formas de construtor para representar diferentes representações do construtor;
3>. Diretor Este comandante é usado para orientar o processo de execução e a forma da instância do construtor, que é usada para se separar do desempenho da instância do construtor e é usado para orientar a instância do construtor para criar e gerar resultados do produto em uma determinada ordem de regra;
4>. Os resultados criados pelo ResultObject gerarão um objeto de resultado; Este é o resultado criado pelo criador específico com base nas orientações do diretor;
3. O modelo do construtor é na verdade um comandante, um construtor e um cliente que usa o comandante para chamar o construtor específico para trabalhar e pode desenhar resultados do construtor específico;
4. Modo Builder, cenário simulado: [Veja um bom exemplo que ilustra a descrição do modo Builder]
Dizem que um membro da família quer construir uma casa, mas o proprietário da casa ou de outras pessoas na família não sabe como construir uma casa, então ele precisa contratar alguns trabalhadores. A equipe do prédio da casa deve ter um capataz para construir uma casa de acordo com as idéias do proprietário. O capataz projeta e exige que os trabalhadores façam o que fazem de acordo com os requisitos do proprietário;
O capataz disse que o primeiro passo é construir todo o esqueleto da casa, o segundo passo é construir o quarto, o terceiro passo é decorar a cozinha, o quarto passo é construir a sala de estar e o quinto passo é ...
O capataz não faz nada, mas o construtor específico deve fazê -lo de acordo com os requisitos do capataz. Os primeiros e segundos passos são construídos até que toda a casa seja concluída;
O Criador deve ter todas as habilidades para criar esta casa, a saber, construir esqueletos, decorar o quarto etc., isto é, o que o construtor faz ou tem habilidades, deve ser maior ou igual ao que o comandante exige para fazer ou tem habilidades;
Ou seja, o comandante é um organizador e o construtor fornece habilidades;
5. Em uma linguagem fraca como o JavaScript, se não houver uma interface, ignore a camada de definição da interface, crie diretamente um construtor específico e, em seguida, crie uma classe de orientação para ligar de volta e para trás o construtor;
Código fonte da instância
1. Construtor de trabalhadores X:
A cópia do código é a seguinte:
função workerbuilder () {
this.workone = function () {
// Construa um esqueleto
}
this.worktwo = function () {
// Construa um quarto
}
this.workThree = function () {
// Construa uma cozinha
}
this.workfour = function () {
// Construa uma sala de estar
}
// ...
this.getResult = function () {
// Construa uma casa
var house = nova casa ();
//house.houseframe ...
casa de volta;
}
}
Workbuilder é um construtor específico, WorkOne, dois é o que fazer, construir esqueletos, etc.;
Obviamente, o Workbuilder pode ser construído vários outros para indicar que os trabalhadores realizam métodos diferentes para cada trabalho; Mas o conteúdo do trabalho é o mesmo;
2. Categoria de comandante
A cópia do código é a seguinte:
Diretor da função () {
this.construct = function (construtor) {
construtor.workone ();
construtor.worktwo ();
construtor.WorkThree ();
construtor.workfour ();
// ...
// O conteúdo acima pode ser definido em sequência e os itens de trabalho também podem ser definidos.
}
}
O método de orientação da categoria Commander inclui referências de retorno de chamada ao construtor, incluindo vários ou todo o conteúdo de trabalho do construtor; O comandante organiza e organiza o que os trabalhadores do construtor precisam fazer;
3. Casa de produtos
A cópia do código é a seguinte:
função house () {
this.houseframe = '';
this.room = '';
this.kitchen = '';
this.Livingroom = '';
// ...
}
4. Como usar
A cópia do código é a seguinte:
var construtor = new Workbuilder ();
Var Diretor = New Diretor ();
Diretor.Construct (construtor);
var house = builder.getResult ();
O quarto passo é que todo o uso é equivalente ao cliente: o proprietário da casa. O proprietário pede ao diretor capataz para construir a casa, mas o capataz não faz nada, então ele instrui o trabalhador do construtor a construir a criança e, finalmente, o proprietário obtém a casa construída do trabalhador;
Outras instruções
O modelo do construtor é mais adequado para o qual o conteúdo [abstrato] é complexo e as cenas reais são diferentes, como a situação em que o conteúdo ou a ordem do trabalho é inconsistente; Por exemplo, o processo da vida diária de cada pessoa e cenas semelhantes aos exemplos acima; Através da camada do instrutor, é possível reduzir o ambiente em que muitos locais de trabalho semelhantes, mas a ordem das regras de trabalho é inconsistente; Pode reduzir bastante a abstração de construção de objetos reais;