Fassade-Muster

Das Fassade-Muster ist ein mit der Objektorientierten Programmierung allgemein verwendetes Softwaretechnikdesignmuster. Der Name ist analog zu einer architektonischen Fassade.

Eine Fassade ist ein Gegenstand, der eine vereinfachte Schnittstelle einem größeren Körper des Codes wie eine Klassenbibliothek zur Verfügung stellt. Eine Fassade kann:

  • machen Sie eine Softwarebibliothek leichter, zu verwenden, zu verstehen und zu prüfen, da die Fassade günstige Methoden für allgemeine Aufgaben hat;
  • machen Sie die Bibliothek lesbarer aus demselben Grund;
  • reduzieren Sie Abhängigkeiten des Außencodes auf der inneren Tätigkeit einer Bibliothek, da der grösste Teil des Codes die Fassade verwendet, so mehr Flexibilität im Entwickeln des Systems erlaubend;
  • wickeln Sie eine schlecht bestimmte Sammlung von APIs mit einer einzelnen gut bestimmten API (laut Aufgabe-Bedürfnisse).

Ein Adapter wird verwendet, wenn das Streifband eine besondere Schnittstelle respektieren muss und ein polymorphes Verhalten unterstützen muss. Andererseits wird eine Fassade verwendet, wenn man will, dass eine leichtere oder einfachere Schnittstelle damit arbeitet.

Struktur

Fassade

: Die Fassade-Klassenauszüge Pakete 1, 2, und 3 vom Rest der Anwendung.

Kunden

: Die Gegenstände mit dem Fassade-Muster, um auf Mittel von den Paketen zuzugreifen.

Beispiel

Das ist ein abstraktes Beispiel dessen, wie ein Kunde ("Sie") mit einer Fassade (der "Computer") zu einem komplizierten System (innere Computerteile, wie Zentraleinheit und HardDrive) aufeinander wirkt.

/* Komplizierte Teile * /

Klassenzentraleinheit {\

öffentlicher leerer Stopp {... }\

öffentlicher leerer Sprung (lange Position) {... }\

öffentliche Leere führt {durch... }\

}\

Klassengedächtnis {\

öffentliche leere Last (lange Position, Byte [] Daten) {... }\

}\

Klasse HardDrive {\

öffentliches Byte [] gelesen (langer lba, int Größe) {... }\

}\

/* Fassade * /

Klassencomputer {\

private Zentraleinheits-ZE;

privates Speichergedächtnis;

privater HardDrive hardDrive;

öffentlicher Computer {\

this.cpu = neue Zentraleinheit ;

this.memory = neues Gedächtnis ;

this.hardDrive = neuer HardDrive ;

}\

öffentliche Leere startComputer {\

cpu.freeze ;

memory.load (BOOT_ADDRESS, hardDrive.read (BOOT_SECTOR, SECTOR_SIZE));

cpu.jump (BOOT_ADDRESS);

cpu.execute ;

}\}\

/* Kunde * /

klassifizieren Sie Sie {\

öffentliche statische leere Hauptsache (Schnur [] args) {\

Computerfassade = neuer Computer ;

facade.startComputer ;

}\}\</Quelle>

Links


DLL / Knoten von Versatackle
Impressum & Datenschutz