Avatar billede finger Nybegynder
12. februar 2003 - 09:52 Der er 3 kommentarer og
1 løsning

facade pattern?

Jeg sidder og programmerer en winformsklient der kører op imod en webservice (ws).
Denne klient kalder løbende flere forskellige metoder i min ws. Jeg har en main klasse der holder allereferencer til de forskellige forms og til den webclient der er en instans af webservicen.
Det der er mit problem lige nu er design/arkitekturmæssigt. Når mine forskellige forms kalder webservicen, foregår det ved at den kalder gennem den reference som mainklassen har. Det besværliggører dog exceptionhandling. Ved hvert kald i hver form kan forbindelsen til webservicen (som mainklassen holder) være røget. desuden kan der forekomme alle mulige andre exceptions. Hvis forbindelsen er røget skal mit program fungere alligevel, så det er vigtigt at jeg fanger den exception der bliver kastet.
Jeg overvejer om jeg skal lave et slags facadepattern hvor jeg kunne lave en klasse for sig til at håndtere forbindelsen til databasen. denne klasse kunne så også fange alle exceptions, hvorfor forms ikke skulle gøre dette. Men så vidt jeg kan se kræver det at facadeklassen skulle have en metode for hver metode på min webservice hvori den kunne fange execptions. det er jo ikke særligt dynamisk hvis man ændrer i meotdehoveder eller tilføjermetoder på webservicen. Ydermere gør det at facadeklassen får kontrollen hvis den skal fange en exception og derefter skal starte en anden del af programmet (der kører når der ikke er forbindelse til ws).

alternativt kan jeg beholde alt som det er nu og så bare lave en kæmpe bunke redundant exceptionhandling ved hvert enkelt webservice kald i forms'ene.

Jeg kiggede også på "reflektion" i .net, men det ser ikke brugbart ud i dette tilfælde.

Er der nogen der har et bedre forslag til løsning af dette? eller hvilket alternativ er det bedste?

//finger
Avatar billede Lasse Novice
12. februar 2003 - 16:56 #1
Jeg vil helt klart gaa efter en "exception klasse" (facadepattern). Da dette er en server - client problemstilling, saa er der nok ikke mange andre muligheder for dig. Den redundante metode vil efter min mening stinke, eftersom en aendring i parametre i ws, vil resultere i mange aendringer paa klient siden.

Du kan ogsaa i denne klasse putte information om hvad der ellers skal kalde i tilfaelde af at ws er nede...
Avatar billede finger Nybegynder
16. februar 2003 - 01:16 #2
fandt selv en løsning.
Avatar billede burningice Nybegynder
16. februar 2003 - 01:49 #3
må man høre :)
Avatar billede finger Nybegynder
24. februar 2003 - 11:17 #4
Jeg endte op med at bruge en slags facadepattern kombineret med et observerpattern. Jeg burger facaden til et slags interface til webservicen sådan at resten af programmet i princippet ikke bliver påvirket af at der ikke er forbindelse til serveren. når der så kommer en webexception kaster jeg min egen connectionException som så kalder nogle andre metoder til at gøre opmærksom på at der ikke er forbindelse. Min connectionexception skal dog fanges i resten af forms'ene. det letter det hele en hel del.

//finger
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester