Latest web development tutorials

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.

Fachada padrão UML diagrama

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 ()