Comparação horizontal de 7 modos de projeto estrutural
A principal função do padrão de projeto estrutural é combinar várias classes ou objetos para tornar suas funções mais abundantes.
Número de série | Nome do padrão | Elementos constituintes | efeito |
---|---|---|---|
1 | Modelo de agência | 1. Classe de tema real (fornecer métodos de negócios) 2. Classe de agente (chamar métodos de negócios de tema real, expandir outros métodos) |
Por algum motivo, o objeto visitante não pode fazer referência ou acessar diretamente o objeto de destino, portanto, adicione um objeto proxy como intermediário. |
2 | Modo adaptador | 1. Interface de destino ( interface de negócios esperada pelo sistema) 2. Adaptador (componente de destino ou interface que precisa ser adaptada) 3. Adaptador (referencie o adaptador de destino no construtor, defina o método de interface de negócios e chame o apropriado (Método de montador) |
Classes ou objetos que não podem funcionar juntos devido a interfaces incompatíveis podem funcionar juntos por meio da conversão do adaptador. |
3 | Modo Ponte | 1. Funções abstratas (incluindo referências a objetos realizados, métodos de chamada de funções realizadas) 2. Funções realizadas (métodos de negócios para realizar funções realizadas) |
Quando uma classe tem múltiplas dimensões que mudam independentemente, e cada dimensão precisa ser expandida |
4 | Padrão decorativo | 1. Função do componente (implementar interface de negócios) 2. Função de decoração ( função de construção de referência no construtor, definir interface de negócios, chamar interface de negócios da função de construção e chamar funções adicionais ao mesmo tempo) |
Precisa adicionar dinamicamente funções adicionais ao objeto sem alterar a estrutura do objeto |
5 | Modo de aparência | 1. Função de aparência (referindo-se ao subsistema no construtor, fornecendo o método para os clientes chamarem e chamando o método do subsistema dentro dele) 2. Função do subsistema (realizando a função de negócios do subsistema) 3. Função do cliente (criando uma instância da função de aparência, Chame seu método) |
Fornece acesso unificado a vários subsistemas |
6 | Modelo Flyweight | 1. Função Flyweight (fornecendo métodos de negócios e obtendo estado externo por meio de parâmetros) 2. Função não compartilhada (recebendo estado externo no construtor, e você pode definir e obter estado externo) 3. Função Flyweight Factory (gerenciamento de funções shareware, Quando um cliente solicita um objeto shareware, primeiro verifique se ele existe no sistema, retorne diretamente se existir e crie um novo objeto shareware se não existir) |
Aplicado a cenas onde há um grande número de objetos idênticos ou semelhantes no sistema que precisam ser criados |
7 | Modo de combinação | 1. Componente folha (objeto de nó folha, sem nós filhos) 2. Componente de ramificação (objeto de nó de ramificação, com nós filhos. Armazenamento e gerenciamento de componentes filhos, geralmente incluindo add \ remove \ getChild e outros métodos) |
Usado para expressar a relação "parte-todo", de modo que os usuários tenham acesso consistente a objetos únicos e objetos combinados. |