brug af facade
Vi har her på kontoret haft nogle diskutioner om hvordan vores facade skal benyttes og her er nogle forskellige udrag..Hvilken en er korrekt?
eller er alle korrekte?
eller er ingen?
Der tages udgangspunkt i en Kunde klasse
1)GUI klasse hvor der sættes nogle properties som tilhøre kundedata... Denne metode har den fordel at GUI ikke har tilgang til andet end nogle properties hvor der kan hentes data fra
dermed er det ikke muligt for en extern udvikler at rode rundt nede i logikken(i et mere komplex eksempel)
En ulempe er at med et mere komplex eksempel kan man risikere at der skal ooprette 100 properties i facaden + dem der er i Kunde (altså noget dobbelt properties), er det normalt?
GUI klasse
Facade f = new Facade
f.Navn = textbox1
f.Adresse = textbox2
f.By = textbox3
f.opretKunde()
--------------
Facade klassen
private Kunde k;
public void opretKunde(){
k = new Kunde()
k.Navn = navn
k.Adresse = adresse
k.By = by
}
public void getKunde(){
navn= k.Navn
adresse = k.Adresse
by = k.By
}
---------------------------------
2)Denne metode har den ulempe at man indirekte arbejder på kunde objektet helt oppe i GUI laget dermed er der adgang til alt hvis en eksterne udvikler skal lave en grænseflade... I et kompleks eksempel kan dette være svært for en ekstern udvikler da denne måske ikke kender flowet i at oprette en kompleks kunde
Dette ville jo være bestemt hvis det var facaden der sørgede for dette..
fordelen er jo at det er nemt at arbejde med og at man selv kan bestemme hvor meget data man vil bruge og de 100 properties skal ikke oprettes i facaden (men dog i Kunden)
GUI klassen
Facade facade = new Facade() <-- i constructoren oprettes et kunde objekt
facade.kunde.Navn = textbox1
facade.kunde.Adresse = textbox2
facade.kunde.By = textbox3
og når data skal vises
textbox1 = facade.kunde.Navn
textbox2 = facade.kunde.Adresse
textbox3 = facade.kunde.By