Os padrões de projeto Java e perguntas da entrevista relacionados

A. Por causa do modelo de design é muito complicado, não há organizar-se. Pode aprender sobre os dois artigos.
23 tipos de padrões de projeto resumo dos padrões de projeto JAVA
23 tipos de padrões de design Insights

No geral, os padrões de projeto em três categorias:
para criar um esquema, um total de cinco categorias: padrão de fábrica método, padrão de fábrica abstrata, Singleton, o padrão do construtor, modelo de protótipo.
modelo estrutural, um total de sete tipos: modo de adaptador, de modo decorativo, modo de proxy, o modo de aparência, de modo de ponte, o modo de combinação, Flyweight.
padrões de comportamento, um total de onze tipos:
padrão de estratégia, o padrão Template Method, de modo observador, iterator padrão, o modo de cadeia de responsabilidade, modo de comando, o modo de estado de modo memorando, o padrão do visitante, modelo intermediário para explicar o modo de

II. Perguntas da entrevista comuns
1. lista Por favor, o padrão de design comum em vários JDK?
padrão Singleton para Runtime, Calendar, e algumas outras classes. padrão de fábrica é usado em diversas categorias, como booleana imutável, como método Boolean.valueOf. O observador padrão é usado para balançar e um monte de tempo escutando. Decorador java IO é uma pluralidade de classes.

4. Explique o que o observador padrão?
O observador padrão é baseado no estado de mudanças e comunicações observador do objeto, de modo que eles podem fazer a ação apropriada. O exemplo mais simples é um sistema meteorológico que deve ser refletido na visão apresentada ao público em quando o tempo muda. Este objeto de exibição é um assunto, e diferentes pontos de vista são observadores.

5. Quais são os benefícios de usar o padrão de fábrica é o mais importante? Onde usar?
O maior benefício é aumentar o nível de pacote padrão de fábrica quando o objeto é criado.
Se você usar a fábrica para criar um objeto, então você pode substituir a realização do produto original ou o gosto de usar mais avançadas e de alto desempenho implementações, que não precisam fazer nenhuma alteração no nível de chamada.

6. Para um padrão decorativo (decorador padrão de projeto) implementação Java com? Ele está agindo em nível de objeto ou hierarquia de classes?
Decorador forte aumento na capacidade de um único objecto. Java IO em todos os lugares usando padrões decorativos, um exemplo típico é a série de classes como Buffered BufferedReader e BufferedWriter, eles aumentam Reader e escritor objetos para atingir o nível de melhoria de desempenho buffer de leitura e escrita.

7. Projeto de uma máquina ATM, indique suas idéias de design.
Por exemplo, os sistemas financeiros projetar, deve saber que todos eles devem ser capazes de trabalhar em qualquer caso. Se falha de energia ou outras circunstâncias, ATM deve manter o estado correto (assuntos), pense sobre o bloqueio (locking), transação (transação), as condições de erro (condição de erro), a condição de contorno (condição de contorno) e assim por diante. Embora você não pode pensar em um projeto específico, mas se você pode apontar requisitos não-funcionais, fazer algumas perguntas, pensar sobre as condições de contorno, estes serão muito boa.

8. Em Java, quando uma carga pesada, quando usar reescrita?
Se você ver diferentes implementações de uma classe têm maneiras diferentes de fazer a mesma coisa, então ele deve estar de carga bastante pesado (sobrecarga) está fazendo a mesma coisa com uma reescrita (substituindo), com entrada diferente. Em Java, o método de sobrecarga de assinaturas diferentes, mas não reescrito.

9. ilustram ser mais inclinados a usar uma classe abstrata, em vez de uma interface em que circunstâncias?
Interfaces e classes abstratas seguir a "realização de interfaces em vez de codificação" princípio de design, ele pode aumentar a flexibilidade do código pode ser adaptado à evolução das necessidades. Aqui estão alguns pontos que podem ajudar a responder a esta pergunta:

Em Java, você só pode herdar uma classe, mas pode implementar várias interfaces. Então, depois de herdar uma classe, você vai perder a chance de herdar as outras classes. Interface normalmente é usado para representar ou descrever o comportamento de tal subsidiária: Runnable, clonable, Serializable etc., então quando você usa uma classe abstrata para representar o comportamento, você pode classe não simultaneamente Runnable e Clonables (Nota: Se se entende aqui refere-se a o Runnable etc. implementado como um caso de classe abstrata), em Java, porque você não pode herdar de duas classes, mas quando você usa a interface, a classe pode ter uma série de comportamentos diferentes ao mesmo tempo. Em algumas das vezes aplicações de alta demanda tendem a usar classe abstrata, será ligeiramente mais rápido do que a interface. Se você quiser realizar uma série de especificações estão dentro da hierarquia de herança de classe e melhor pode ser codificado no mesmo lugar, em seguida, a classe abstrata é uma escolha melhor. Às vezes, classes abstratas e interfaces podem ser utilizados em conjunto, uma função de interface é definido, a implementação padrão é definida em uma classe abstrata.

Publicado 99 artigos originais · ganhou elogios 2 · Vistas 2621

Acho que você gosta

Origin blog.csdn.net/weixin_41588751/article/details/105206194
Recomendado
Clasificación