Je nach UserSetting unterschiedliche Klasse typsicher zurückgeben?

01/05/2009 - 11:45 von Olaf Rabbachin | Report spam
Huhu!

Ich habe eine Anwendung, in deren Rahmen der DataLayer wahlweise
(Einstellung) über eine direkte Anbindung an einen SQLS oder über einen
WebService (und von dort an den SQLS) laufen soll.

Ein relativ àhnliches Szenario hatte ich bislang bei Anwendungen, die
wahlweise mit einer JET-MDB oder mit SQLS arbeiten. Dort habe ich das über
Interfaces implementiert. Sprich, jede Datenklasse (z.B. Tabelle)
implementiert dort ein adequates Interface; in den eine Datenklasse
verwendenden Objekten gibt's dann eine Property, die das typsicher
"wrappt":

'[...]
Private _cSQLS_DataClass As _cSQLS_DataClass
Private _cJET_DataClass As cJET_DataClass
'[...]
Private ReadOnly Property DataClass() As IMyDataClass
Get
If My.Settings.UseSQLS Then
Return _cSQLS_DataClass
Else
Return _cJET_DataClass
End If
End Get
End Property
'[...]

"IMyDataClass" definiert dann die Methoden und Eigenschaften, die in beiden
Fàllen Verwendung finden. Die Methoden in den JET/SQLS-Klassen sind dabei
logischerweise unterschiedlich.

Bei meinem jetzigen Szenario aber sind die Methoden (resp. deren Inhalt) ja
grundsàtzlich identisch, denn sowohl der WebService als auch die direkte
Anbindung verwenden ja die identischen Datenklassen.
Im Falle der WS-Anbindung aber bràuchte ich halt einen entspr. Wrapper bzw.
Layer dazwischen.

Insofern stellt sich mir die Frage, ob ich das anderweitig *einfacher*
lösen könnte ..?

Gruß,
Olaf
 

Lesen sie die antworten

#1 Peter Fleischer
04/05/2009 - 22:05 | Warnen spam
"Olaf Rabbachin" schrieb im Newsbeitrag
news:
...
Bei meinem jetzigen Szenario aber sind die Methoden (resp. deren Inhalt)
ja
grundsàtzlich identisch, denn sowohl der WebService als auch die direkte
Anbindung verwenden ja die identischen Datenklassen.



Hi Olaf,
wenn du wirklich identische Datenklassen nutzt, dann erkenne ich dein
Problem nicht.

Im Falle der WS-Anbindung aber bràuchte ich halt einen entspr. Wrapper
bzw.
Layer dazwischen.



Wozu?

Ich vermute, dass du nicht identische Klassen nutzt, sondern nur Klassen,
die den gleichen logischen Inhalt haben, aber unterschiedlich deklariert
sind (einmal im WebService und einmal im lokalen DAL).

Viele Grüsse
Peter

Ähnliche fragen