Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Gisfrid Boeglin Geändert vor über 10 Jahren
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.