23 padrões de design (explicação da imagem)

23 padrões de design

1 、 Fábrica

Perseguir MM é indispensável para o jantar. Asas de frango do McDonald’s e as asas de frango do KFC são as favoritas do MM. Embora os gostos sejam diferentes, não importa se você leva MM ao McDonald’s ou KFC, basta dizer "quatro asas de frango" para o garçom. McDonald's e KFC são os modelos de fábrica da fábrica que produzem asas de frango: a classe do cliente e a classe da fábrica são separadas. O consumidor precisa de um produto a qualquer momento, basta perguntar na fábrica. Os consumidores podem aceitar novos produtos sem modificação. A desvantagem é que quando o produto é modificado, a classe de fábrica também deve ser modificada de acordo. Tais como: como criar e como fornecer ao cliente.


2 、 Construtor

O que MM adora ouvir é a frase "Eu te amo". Quando você vê MM em lugares diferentes, você deve ser capaz de falar essa frase com ela em seus dialetos. Eu tenho um tradutor multilíngue. Cada idioma acima existe um botão. Quando vejo o MM, basta pressionar o botão correspondente e ele poderá dizer "Eu te amo" no idioma correspondente. MMs estrangeiros também podem lidar facilmente com isso. Este é o meu "Eu te amo" construtor. (Deve ser melhor vendendo do que o tradutor usado pelos militares dos EUA no Iraque) Modo de construção: Separe a aparência interna do produto do processo de produção do produto, de modo que um processo de construção gere objetos de produto com diferentes aparências internas. O modo de construção permite que a aparência interna do produto seja alterada de forma independente, e o cliente não precisa saber os detalhes da composição interna do produto. O modo de construção pode impor um processo de construção passo a passo.


3 、 FactoryMethod

Peça ao MM para ir ao McDonald's para comer hambúrgueres. MMs diferentes têm gostos diferentes. É uma coisa chata de lembrar cada um. Eu geralmente uso o modo Factory Method. Levo MM ao garçom e digo "Eu quero um hambúrguer". do hambúrguer que você quer? Basta pedir ao MM para dizer diretamente ao garçom. Padrão de método de fábrica: A classe de fábrica principal não é mais responsável pela criação de todos os produtos, mas entrega o trabalho de criação específico para subclasses para fazê-lo, tornando-se uma função de fábrica abstrata, apenas responsável por fornecer a interface que a classe de fábrica concreta deve implementar, sem tocar Os detalhes de qual classe de produto deve ser instanciada.


4. Protótipo

Ao conversar com MM usando QQ, você deve dizer algumas palavras afetuosas. Eu colecionei muitas palavras de amor. Quando necessário, basta copiá-las e colocá-las em QQ. Este é o protótipo das minhas palavras de amor. (100 yuans por cópia, você quer?) Modo do modelo original: Especifique o tipo de objeto a ser criado fornecendo um objeto protótipo e, em seguida, use o método de cópia desse objeto protótipo para criar mais objetos do mesmo tipo. O modo do modelo original permite o aumento ou diminuição dinâmica das categorias de produtos. As categorias de produtos não precisam ter nenhuma estrutura hierárquica pré-determinada. O modo do modelo original é aplicável a qualquer estrutura hierárquica. A desvantagem é que cada classe deve ser equipada com um método de clonagem.


5. Singleton (singleton)

Tenho 6 lindas esposas. Seus maridos são todos eu. Sou o marido Sigleton em nossa família. Contanto que digam "marido", todas se referem à mesma pessoa, e essa sou eu (acabei de ter um sonho. Tal uma coisa boa) Modo singleton: O modo singleton garante que uma determinada classe tenha apenas uma instância e se instancia e fornece esse modo singleton de instância para todo o sistema. O modo singleton deve ser usado apenas quando houver um requisito real de "instância única". [b: 9ceca65206] Modelo estrutural [/ b: 9ceca65206]


6. Adaptador

 Encontrei a bela Sarah em um encontro de amigos, de Hong Kong, mas não falo cantonês, ela não fala mandarim, então tive que pedir ajuda ao meu amigo Kent. Ele atua como o adaptador entre Sarah e eu. Sarah pode conversar (não sei se ele vai me enganar) Modo adaptador (transformador): transforma a interface de uma classe em outra interface esperada pelo cliente, de forma que a interface original não possa ser correspondida devido a incompatibilidade As duas classes de trabalho podem funcionar juntas. A classe de adaptação pode retornar uma instância adequada ao cliente de acordo com os parâmetros.


7, ponte (ponte)

Se você encontrar o MM de manhã, você tem que dizer bom dia, se você encontrar o MM à noite, você tem que dizer boa noite, quando você encontrar o MM e usar um vestido novo, você tem que dizer que suas roupas são tão bonitas. Quando conhecer o novo penteado de MM, você terá que dizer o seu. O cabelo é tão lindo. Não me pergunte "o que eu digo quando encontrei MM de manhã e fiz um novo penteado", apenas use BRIDGE para combiná-lo. Modo ponte: dissociando abstração e realização, para que os dois possam ser alterados independentemente, ou seja, a forte associação entre eles é transformada em uma associação fraca, o que significa usar uma relação de combinação / agregação em vez de uma relação de herança entre a abstração e a realização de um sistema de software, para que as duas possam mudar independentemente.


8, Composto (composto)

Mary faz aniversário hoje. "Meu aniversário, você quer me dar um presente." "Bem, ok, vá até a loja, você mesmo escolhe." "Esta camiseta é bonita, compre, esta saia fica bem, compre, esta bolsa também é bom, compre. "" Ei, comprei três deles. Só prometi um presente. "" O quê? Uma camiseta, saia e bolsa, cabe em um conjunto, senhorita, por favor, embrulhe-o. "...", o MM usará o modo Composto, você conseguiu? Modo de síntese: O modo de síntese organiza os objetos em uma estrutura de árvore, que pode ser usada para descrever a relação entre o todo e a parte. O modo de composição é um modo que lida com a estrutura em árvore do objeto. O modo composto representa a relação entre a parte e o todo em uma estrutura em árvore. O modo de composição permite que o cliente trate os objetos de componentes individuais da mesma forma que os objetos de composição compostos por eles.


9, Decorador (decoração)

Após a vez de Mary no aniversário de Sarly, não peça a ela para buscá-lo. Caso contrário, ela definitivamente terminará sua refeição este mês. Retire as fotos que tirei no topo do Monte Hua no ano passado e escreva "O melhor presente, que é Love your Fita ", comprei um porta-retratos na loja de presentes da rua (o MM que vende presentes também é muito bonito), e aí encontrei o Mike que é um designer de arte da casa ao lado para desenhar uma linda caixa e colocá-la em ..., nós dois somos decoradores, No fim estou me arrumando, que tal, entendeu? Modo de decoração: O modo de decoração expande a função do objeto de forma transparente para o cliente, é uma alternativa à relação de herança e oferece mais flexibilidade do que herança. Adicione funções dinamicamente a um objeto, e essas funções podem ser desfeitas dinamicamente. Adicione um grande número de funções produzidas pela permutação e combinação de algumas funções básicas.


10. Fachada (fachada)

Tenho uma câmera Nikon profissional, gosto de ajustar manualmente a abertura e o obturador sozinho, para que as fotos tiradas sejam profissionais, mas MM não entende isso e não posso ensinar por muito tempo. Felizmente, a câmera tem um modo de design Facade. Ajuste a câmera para a marcha automática. Basta apontar para o alvo e pressionar o obturador. Tudo é ajustado automaticamente pela câmera, para que MM também possa tirar uma foto minha com esta câmera. Modo de fachada: A comunicação externa com um subsistema deve ser realizada através de um objeto de fachada unificado. O modo fachada fornece uma interface de alto nível, tornando o subsistema mais fácil de usar. Cada subsistema possui apenas uma classe de fachada, e essa classe de fachada possui apenas uma instância, o que significa que é um padrão singleton. Mas todo o sistema pode ter várias classes de fachada.


11. Flyweight (Flyweight)

Eu envio mensagens de texto para MM todos os dias e meus dedos estão exaustos. Recentemente comprei um novo telefone celular. Você pode armazenar algumas frases comumente usadas no telefone celular. Quando quiser usá-lo, você pode retirá-lo diretamente e adicionar o nome do MM na frente. Chega de digitar palavra por palavra. A frase compartilhada é Flyweight, e o nome de MM é o recurso externo extraído, que é usado de acordo com o contexto. Modo Flyweight: FLYWEIGHT refere-se ao peso galo em uma luta de boxe. O modo Flyweight oferece suporte eficiente a um grande número de objetos de granulação fina de maneira compartilhada. A chave para compartilhar o modelo Flyweight é distinguir o estado intrínseco e o estado extrínseco. O estado intrínseco é armazenado no Flyweight e não mudará com a mudança do ambiente. O estado extrínseco muda conforme o ambiente muda. O estado extrínseco não pode afetar o estado intrínseco, eles são independentes um do outro. Distinga o estado que pode ser compartilhado do estado que não pode ser compartilhado da classe regular e remova o estado que não pode ser compartilhado da classe. O cliente não pode criar diretamente o objeto compartilhado, mas deve usar um objeto fábrica para ser responsável pela criação do objeto compartilhado. O modo Flyweight reduz bastante o número de objetos na memória.


12. Proxy

Conversando com MM na Internet, o começo é sempre "oi, olá", "De onde você é?" "Quantos anos você tem?" "Qual a sua altura?" Essas palavras são realmente irritantes, escreva um programa para mim Proxy , defina sua própria resposta sempre que receber essas palavras, e avise-me para responder quando receber outras palavras, que tal, legal. Modo proxy: o modo proxy fornece um objeto proxy para um determinado objeto, e o objeto proxy controla a referência ao objeto de origem. Um agente é uma pessoa ou organização que age em nome de outra pessoa ou organização. Em alguns casos, o cliente não deseja ou não pode se referir diretamente a um objeto, e o objeto proxy pode atuar diretamente como um intermediário entre o cliente e o objeto de destino. O cliente não consegue distinguir entre o objeto sujeito proxy e o objeto sujeito real. O modo proxy pode não conhecer o objeto proxy real, mas conter apenas uma interface do objeto proxy. Neste momento, o objeto proxy não pode criar o objeto proxy. O objeto proxy deve ser criado e transmitido por outras funções do sistema. [b: 9ceca65206] Modo de comportamento [/ b: 9ceca65206]


13, ChainOfResponsibleity (modelo de cadeia de responsabilidade)

Fui para a aula de inglês à noite. Sentei-me na última fileira para escapar. Uau, há alguns MMs lindos sentados na frente. Encontre um bilhete e escreva "Olá, você pode ser minha namorada? Se você não quero, passe adiante ", as notas foram passando uma a uma. Opa, o MM que passou para a primeira fila passou as notas para a professora. Ouvi dizer que ela é uma solteirona. Corre! Corrente de Modo de responsabilidade: No modo Chain of Responsibility em, muitos objetos são conectados pela referência de cada objeto à sua próxima casa para formar uma cadeia. A solicitação é passada nesta cadeia até que um objeto na cadeia decida lidar com a solicitação. O cliente não sabe qual objeto na cadeia tratará a solicitação, e o sistema pode reorganizar dinamicamente a cadeia e atribuir responsabilidades sem afetar o cliente. O processador tem duas opções: assumir a responsabilidade ou transferir a responsabilidade para o próximo. Em última análise, uma solicitação não pode ser aceita por nenhum objeto destinatário.


14 、 Comando

Tenho uma MM que é muito rígida em casa e não pode se encontrar, então ela teve que usar o irmão para enviar mensagens entre nós. Ela escreveu um bilhete para seu irmão me trazer se tivesse instruções para mim. Não, o irmão dela enviou outro COMANDO. Para agradecê-lo, pedi-lhe que comesse uma tigela de macarrão diverso. Não sabia que ele disse: "Dou um COMANDO para os três namorados da minha irmã ao mesmo tempo. Por favor me to eat noodles. ", Modo de comando: o modo de comando encapsula uma solicitação ou operação em um objeto. O modo de comando separa a responsabilidade de emitir comandos da responsabilidade de executar comandos e os delega a diferentes objetos. O modo de comando permite que o solicitante e o remetente sejam independentes, de modo que o solicitante não precise conhecer a interface do destinatário, muito menos como o pedido é recebido e se a operação é executada, quando é executado, e como ele é executado. O sistema suporta o cancelamento de comandos.


15, Intérprete (intérprete)

Eu tenho uma "Escritura de MM embebendo", que tem várias estratégias para fazer MM, como os passos para comer comida ocidental, como ir ao cinema, etc. Quando namorar MM, basta ser um intérprete e seguir o roteiro acima Basta executar isto. Modo intérprete: Dado um idioma, o modo intérprete pode definir uma representação de sua gramática e fornecer um intérprete ao mesmo tempo. O cliente pode usar este intérprete para interpretar frases neste idioma. O padrão do interpretador descreverá como usar o design do padrão para interpretar essas sentenças depois de ter uma gramática simples. A linguagem mencionada no modo intérprete se refere a qualquer combinação que qualquer objeto intérprete possa interpretar. No modo intérprete, é necessário definir uma estrutura hierárquica de classes de comando representando a gramática, que é uma série de regras de combinação. Cada objeto de comando possui um método de explicação, que representa a interpretação do objeto de comando. Qualquer permutação e combinação de objetos na hierarquia de objetos de comando é uma linguagem.


16, Iterator (iterador)

Eu me apaixonei por Mary e a pedi em casamento desesperadamente. Maria: “Se você quer que eu me case com você, você tem que concordar com os meus termos.” Eu: “Aceito qualquer condição, é só dizer.” Maria: “Eu me apaixonei pelo diamante de um quilate” Eu : "Eu compro, eu compro, tem mais?" Mary: "Eu vi a casa à beira do lago" Eu: "Eu comprei, comprei, você tem mais?" Mary: "Eu vi aquela Ferrari carro esporte "Minha cabeça zumbia, Sentado em uma cadeira, cerrou os dentes:" Eu compro, compro, você tem mais? "... Submodo iterativo: o submodo iterativo pode acessar sequencialmente os elementos em um cluster sem expor a aparência interna do cluster. O agregado formado por vários objetos é chamado de agregação, e um objeto agregado é um objeto recipiente que pode conter um grupo de objetos. O submodo iteração encapsula a lógica da iteração em um subobjeto separado, que é separado da própria agregação. O submodo iterativo simplifica a interface agregada. Cada objeto agregado pode ter um ou mais subobjetos iterativos e o status de iteração de cada iterador pode ser independente um do outro. O algoritmo iterativo pode ser independente das alterações da função de agregação.


17. Mediador (mediação)

Quatro MMs jogaram mahjong. Não está claro quem deve dar uns aos outros e quanto dinheiro. Felizmente, eu estava lá na época e contei o dinheiro de acordo com suas respectivas fichas de pechincha. Aqueles que ganharam dinheiro pegariam de mim, e aqueles que dinheiro perdido também compensaria. Eu, está tudo bem, recebi quatro ligações do MM. Modo mediador: o modo mediador encapsula a maneira como uma série de objetos interage, de forma que esses objetos não tenham que interagir significativamente entre si. Para que possam ser fracamente acoplados. Quando a função de alguns objetos muda, isso não afetará imediatamente a função de alguns outros objetos. Certifique-se de que esses efeitos podem ser alterados independentemente uns dos outros. O modelo de mediador transforma as interações de muitos para muitos em interações de um para muitos. O padrão mediador abstrai o comportamento e a colaboração do objeto e separa a interação do objeto de outros objetos no comportamento de pequena escala.


18. Memento (memorando)

Ao conversar com vários MMs ao mesmo tempo, lembre-se exatamente do que você disse ao MM agora, caso contrário, o MM ficará infeliz se você descobrir. Felizmente, tenho um memorando. Tenho uma cópia do que disse ao qual MM agora mesmo. Salve-o no memo para que você possa ver os registros anteriores a qualquer momento. Modo de memorando: o objeto de memorando é um objeto usado para armazenar um instantâneo do estado interno de outro objeto. O objetivo do modo memo é capturar, externalizar e armazenar o estado de um objeto sem destruir o encapsulamento, de modo que o objeto possa ser restaurado ao estado armazenado em um momento apropriado no futuro.


19. Observador (Observador)

Quer saber as últimas informações de MM de nossa empresa? Basta aderir ao grupo de mailing de inteligência de MM da empresa. Tom é responsável por coletar informações. As novas informações que ele encontrar não precisam ser notificadas uma a uma. Elas são publicadas diretamente no grupo de e-mail. Como assinantes (observadores), podemos receber informações a tempo Modo de observador: o modo de observador define um relacionamento de dependência de vários grupos, permitindo que vários objetos de observação monitorem um determinado objeto sujeito ao mesmo tempo. Quando este objeto sujeito muda de estado, ele notifica todos os objetos observadores para que eles possam se atualizar automaticamente.


20, estado

Ao interagir com MM, você deve prestar atenção ao estado dela. O comportamento dela será diferente em diferentes estados. Por exemplo, se você convidá-la para ir ao cinema hoje à noite, MM que não está interessado em você dirá "algo está acontecendo ". MM que não te odeia mas não gosta vai dizer" Ok, mas posso trazer meu colega? ", MM que já gosta de você dirá" Que horas? Por que ir a uma balada depois de assistir o filme? Como? "Claro, se você se comportar bem enquanto assiste a um filme, você também pode alterar o estado do MM de não gostar ou não gostar. Modo de estado: o modo de estado permite que um objeto mude o comportamento quando seu estado interno muda. Este objeto parece que mudou de classe. O padrão de estado empacota o comportamento do objeto pesquisado em diferentes objetos de estado, e cada objeto de estado pertence a uma subclasse de uma classe de estado abstrato. A intenção do padrão de estado é fazer com que um objeto mude seu comportamento quando seu estado interno muda. O modelo de estado requer a criação de uma subclasse da classe de estado para cada estado possível do sistema. Quando o estado do sistema muda, o sistema muda a subclasse selecionada.


21, Estratégia (modo de estratégia)

Para namorar com diferentes tipos de MM, você precisa usar estratégias diferentes. Alguns filmes são melhores, alguns têm lanches e alguns vão para a praia para romance. O único objetivo é conquistar o coração de MM, minha busca Existem muitas estratégias no kit MM. Modo de estratégia: O modo de estratégia é para um conjunto de algoritmos, encapsulando cada algoritmo em uma classe independente com uma interface comum, de forma que eles possam ser substituídos entre si. O modo de estratégia permite que o algoritmo mude sem afetar o cliente. O modelo de estratégia separa comportamento e ambiente. A classe de ambiente é responsável por manter e consultar a classe de comportamento, e vários algoritmos são fornecidos na classe de estratégia específica. Visto que o algoritmo e o ambiente são independentes, o aumento, diminuição ou modificação do algoritmo não afetará o ambiente e o cliente.


22, MÉTODO DO MODELO (modo de método do modelo)


Você já leu o artigo clássico "Como persuadir as meninas a irem para a cama"? A partir do reconhecimento das etapas imutáveis ​​de ir para a cama, as meninas são divididas em oito etapas principais (método de modelo): coincidência, rompimento do impasse, perseguição, beijo, preliminares, mãos na massa, acariciar e entrar (método de modelo), mas cada etapa é diferente para diferentes situações. A abordagem depende de você (implementação específica); Modo de método de modelo: o modo de método de modelo prepara uma classe abstrata, implementa parte da lógica na forma de métodos e construtores concretos e, em seguida, declara alguns métodos abstratos para forçar subclasses Implementar a lógica restante. Diferentes subclasses podem implementar esses métodos abstratos de maneiras diferentes, tendo, portanto, diferentes implementações da lógica restante. Primeiro, desenvolva uma estrutura lógica de nível superior e deixe os detalhes da lógica para subclasses específicas para implementação.


23, VISITOR (modo visitante)

Chegou o dia dos namorados. Devo dar a cada MM um buquê de flores e um cartão, mas as flores de cada MM devem ser personalizadas de acordo com suas características pessoais, e cada cartão deve ser selecionado de acordo com suas características pessoais. Como posso fazer isso sozinho? Para ser claro, é melhor pedir ao florista e dono da loja de presentes para fazer um visitante, deixar que o florista escolha um ramo de flores de acordo com as características do MM, e deixar que o dono da loja escolha um cartão de acordo com as características de cada pessoa, para que seja muito mais fácil; visite O padrão do visitante: O objetivo do padrão do visitante é encapsular algumas operações impostas a um determinado elemento da estrutura de dados. Uma vez que essas operações precisam ser modificadas, a estrutura de dados que aceita essa operação pode permanecer inalterada. O padrão de visitante é adequado para sistemas com estruturas de dados relativamente incertas, pois quebra o acoplamento entre a estrutura de dados e as operações na estrutura, de modo que o conjunto de operações possa evoluir de forma relativamente livre. O padrão de visitante facilita a inclusão de novas operações, que é incluir uma nova classe de visitante. O padrão de visitante concentra comportamentos relacionados em um objeto de visitante, em vez de dispersá-los em classes de nós individuais. Ao usar o padrão de visitante, coloque o máximo possível de lógica de navegação de objeto na classe de visitante, em vez de em suas subclasses. O padrão de visitante pode cruzar várias estruturas hierárquicas para acessar classes de membros pertencentes a diferentes estruturas hierárquicas.

Acho que você gosta

Origin blog.csdn.net/wangshengfeng1986211/article/details/38366471
Recomendado
Clasificación