padrão de fachada
padrão de fachada (Fachada Padrão) oculta a complexidade do sistema para o cliente fornece um cliente pode acessar a interface do sistema. Este tipo de padrões de projeto pertencem modelo estrutural, ele adiciona uma interface para um sistema existente, para ocultar a complexidade do sistema.
Este modelo envolve uma única classe, que fornece uma abordagem simplificada aos pedidos de clientes e chamadas de delegados para métodos de classe sistemas existentes.
introdução
Intenção: O subsistema fornece um conjunto de interfaces de uma interface consistente, o esquema define a aparência de uma interface de alto nível que faz com que o subsistema mais fácil de usar.
A solução principal: reduzir a complexidade de acesso subsistemas internos quando os sistemas complexos, simplificar a interface do cliente com.
Quando usar: 1, o cliente não precisa saber o sistema dentro das ligações complexas, todo o sistema precisa apenas fornecer uma "recepcionista" pode ser.2, a entrada de definir o sistema.
Como corrigir: o cliente não está acoplada com o sistema, o sistema juntamente com o aparecimento de classe.
O código de chave: entre o sistema de cliente e adicione uma camada de complexidade, desta vez será seqüência de chamamento, dependências e manuseamento.
Exemplos de aplicação: 1, vá para o hospital, você pode ir para o registro, ambulatório, preço designado, farmácia, o paciente ou familiares de pacientes acham muito complicado, se não são fornecidos funcionários da recepção, apenas deixou a equipe da recepção para lidar com, muito conveniente.2, JAVA modelo de desenvolvimento de três camadas.
Vantagens: 1, para reduzir o sistema são interdependentes.2, aumentar a flexibilidade. 3, para melhorar a segurança.
Desvantagens: não está em conformidade com o princípio de abertura e fechamento, se você quiser mudar as coisas demais, herança reescrita são inadequadas.
cenários de uso: 1, para proporcionar o acesso a módulos externos são módulos complexos ou subsistemas.2, subsistemas relativamente independentes. 3, a prevenção de riscos de pessoal de baixo nível.
Nota: Em uma estrutura hierárquica, você pode usar o sistema para definir a aparência do modo de entrada para cada camada.
realização
Nós vamos criar uma interfaceFormae implementação da interfaceFormaclasses de entidade. O próximo passo é definir umShapeMakerclassepele.
classeShapeMakerusa uma classe de entidade para representar um usuário liga para essas classes.FacadePatternDemo,nossas aulas de demonstração usando classShapeMakerpara exibir os resultados.
passo 1
Criar uma interface.
Shape.java
Forma interface pública { draw void (); }
passo 2
Criar classe de entidade que implementa a interface.
Rectangle.java
public class Rectangle implementa Forma { @Override draw public void () { System.out.println ( "Retângulo :: draw ()"); } }
Square.java
public class Praça implementa Forma { @Override draw public void () { System.out.println ( "Praça :: draw ()"); } }
Circle.java
classe pública Círculo implementa Forma { @Override draw public void () { System.out.println ( "Circle :: draw ()"); } }
passo 3
Criar uma aparência de classe.
ShapeMaker.java
ShapeMaker classe pública { círculo Forma privado; retângulo privado; Quadrado privado; ShapeMaker pública () { círculo = new Circle (); retângulo = new Rectangle (); quadrado = new Square (); } drawCircle public void () { circle.draw (); } public void drawRectangle () { rectangle.draw (); } public void drawSquare () { square.draw (); } }
passo 4
O uso de vários tipos de classe pele para desenhar a forma.
FacadePatternDemo.java
FacadePatternDemo classe pública { main (String [] args) public static void { ShapeMaker ShapeMaker = new ShapeMaker (); shapeMaker.drawCircle (); shapeMaker.drawRectangle (); shapeMaker.drawSquare (); } }
passo 5
Verifique saída.
Circle :: draw () Retângulo :: draw () Praça :: draw ()