Latest web development tutorials

modello facade

Reticolo Facciata (Facciata Pattern) nasconde la complessità del sistema per il client fornisce un client può accedere all'interfaccia di sistema. Questo tipo di modelli di progettazione appartengono modello strutturale, aggiunge un'interfaccia per un sistema esistente, per nascondere la complessità del sistema.

Questo modello prevede una singola classe, che offre un approccio semplificato alle richieste dei client e le chiamate delegare ai metodi di classe sistemi esistenti.

introduzione

Scopi: Il sottosistema fornisce una serie di interfacce in un'interfaccia coerente, schema definisce l'aspetto di una interfaccia di alto livello che rende il sottosistema più facile da usare.

La soluzione principale: ridurre la complessità di accesso ai sottosistemi interni quando i sistemi complessi, semplificano cliente con l'interfaccia.

Quando usare: 1, il cliente non ha bisogno di conoscere il sistema all'interno dei complessi legami, l'intero sistema è tenuto a fornire solo un "centralinista" può essere.2, l'ingresso definire il sistema.

Come risolvere: il client non è accoppiato con il sistema, il sistema accoppiato con la comparsa di classe.

Il codice chiave: tra il sistema client e aggiungere un livello di complessità, questa volta sarà chiamata sequenza, le dipendenze e la manipolazione.

Esempi di applicazione: 1, andare in ospedale, si può andare alla registrazione, ambulatoriale, il prezzo indicato, ambulatorio, i membri dei pazienti o familiari di pazienti trovano molto complicato, se sono previste personale della reception, lasciare che il personale della reception per affrontare, molto conveniente.2, JAVA tre livelli modello di sviluppo.

Vantaggi: 1, per ridurre il sistema sono interdipendenti.2, aumentare la flessibilità. 3, per migliorare la sicurezza.

Svantaggi: non è conforme al principio di apertura e chiusura, se si vuole cambiare le cose troppo disturbo, eredità riscrittura sono inappropriati.

scenari di utilizzo: 1, per fornire l'accesso ai moduli esterni sono moduli o sottosistemi complessi.2, sottosistemi relativamente indipendenti. 3, la prevenzione dei rischi per il personale di basso livello.

Nota: in una struttura gerarchica, è possibile utilizzare il sistema per definire l'aspetto della modalità di inserimento per ogni strato.

realizzazione

Creeremo una interfacciaformae l'implementazione dell'interfacciaShapeclassi di entità. Il passo successivo è quello di definire una classe diShapeMaker pelle.

ClasseShapeMakerutilizza una classe di entità per rappresentare un utente chiama a queste classi.FacadePatternDemo,i nostri corsi dimostrativi utilizzando classeShapeMakerper visualizzare i risultati.

modello Facade diagramma UML

fase 1

Creare un'interfaccia.

Shape.java

Forma interfaccia pubblica {
   void draw ();
}

fase 2

Creare classe di entità che implementa l'interfaccia.

Rectangle.java

public class Rettangolo implementa Shape {

   @Override
   draw public void () {
      System.out.println ( "Rettangolo :: draw ()");
   }
}

Square.java

public class Piazza implementa Shape {

   @Override
   draw public void () {
      System.out.println ( "Square :: draw ()");
   }
}

Circle.java

public class Circle implementa Shape {

   @Override
   draw public void () {
      System.out.println ( "Circle :: draw ()");
   }
}

fase 3

Creare un aspetto di classe.

ShapeMaker.java

public class ShapeMaker {
   cerchio forma privata;
   Forma rettangolo privato;
   Quadrato privato;

   ShapeMaker pubblico () {
      cerchio = new Circle ();
      rettangolo = new Rectangle ();
      piazza = new Square ();
   }

   drawCircle public void () {
      circle.draw ();
   }
   public void drawRectangle () {
      rectangle.draw ();
   }
   public void drawSquare () {
      square.draw ();
   }
}

fase 4

L'uso di vari tipi di classe pelle per disegnare la forma.

FacadePatternDemo.java

public class FacadePatternDemo {
   Main (string [] args) {public static void
      ShapeMaker ShapeMaker = new ShapeMaker ();

      shapeMaker.drawCircle ();
      shapeMaker.drawRectangle ();
      shapeMaker.drawSquare ();		
   }
}

fase 5

Verifica uscita.

Circle :: draw ()
Rettangolo :: draw ()
Piazza :: draw ()