Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.

Ähnliche Präsentationen


Präsentation zum Thema: "F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems."—  Präsentation transkript:

1 F açade P attern By Nicolas Lanquetin

2 Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems Vereinfacht Zugriff auf das Sybsystem.

3 Idee Client-Klassen können über die Façade-Interface auf die Interfaces des Subsystems zugreifen.

4 Beteiligte Klassen Façade –weiss wofür die Subsystem-Klassen zuständig sind. –delegiert Anfragen an diese Klassen weiter. Subsystem-Klassen –kümmern sich um die Arbeit die ihnen von der Façade zugeteilt wird. –wissen garnicht dass es die Façade gibt.

5 Beispiel-Diagramm

6 // "SubSystem ClassA" class Bank { public boolean SufficientSavings(Customer c) { System.out.println("Check bank for + c.Name); /*... */ return true; } Beispiel-Code

7 // "SubSystem ClassB" class Credit { public boolean GoodCredit(int amount,Customer c) { System.out.println("Check credit for + c.Name); /*... */ return true; }

8 // "SubSystem ClassC" class Loan { public boolean GoodLoan(Customer c) { System.out.println("Check loan for + c.Name); /*... */ return true; }

9 class Customer { // Fields private String name; // Constructors public Customer(String name) { this.name = name; } // Properties public String Name { get {return name;} }

10 // "Façade" class MortgageApplication { // Fields int amount; // der Geldbetrag private Bank bank = new Bank(); private Loan loan = new Loan(); private Credit credit = new Credit(); // Constructors public MortgageApplication(int amount) { this.amount = amount; } // Methods public boolean IsEligible(Customer c) { // Kunde bankfähig? if(!bank.SufficientSavings(c)) return false; if(!loan.GoodLoan(c)) return false; if(!credit.GoodCredit(amount, c)) return false; return true; }

11 // Fa ç ade Client public class FacadeApp { public static void main(String[] args) { // Create Fa ç ade MortgageApplication mortgage = new MortgageApplication(125000); // Call subsystem through Fa ç ade mortgage.IsEligible( new Customer("Gabrielle McKinsey")); }

12 Wann wenden wir Façade an Simple Interface für komplexe Subsysteme. Einheitlicher Zugriff möglich => Subsystem ist unabhängig von Client-Klassen. Erschaffen von Layers: Alle Subsysteme sind über ihre Façade- Interface ansprechbar => Übersichtlicher Portieren (z.B. zu anderen OS) erleichtert.

13 Quellen Bsp-Code: http://dofactory.com/patterns/PatternFacade.aspx


Herunterladen ppt "F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems."

Ähnliche Präsentationen


Google-Anzeigen