Laden...

Businessobjekte durchreichen

Erstellt von dani.net vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.048 Views
dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren
Businessobjekte durchreichen

Hey

Wo definiert ihr eigentlich eure Business-Objekte? Das Problem ist ja, dass diese jeweils in allen Tiers zugänglich sein müssten (Speichern eines Autos, Anzeigen eines Autos usw.).

Ich hab das bis jetzt jeweils so gelöst, dass ich eine separate "Schicht" mit den Business-Objekten erstellt habe, die quasi neben allen anderen verläuft und so von allen Schichten her zugänglich ist.

Wie macht ihr das?

Lg
Dani

3.511 Beiträge seit 2005
vor 16 Jahren

Eigentlich genau so. Und so wie es eigentlich auch sein sollte.

Habe immer mehrere Schichten.

  • GUI Schicht
  • (Web GUI)
  • Logikschicht
  • Datenschicht

Also klassische 3-Tier Anwendungen...

Mal nach Smalltalk verschieben?

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

ja... nur wo bringst du deine Businessobjekte unter?
Wenns in der Logikschicht ist, hat ja zB. die Datenschicht keinen Zugriff darauf...

3.511 Beiträge seit 2005
vor 16 Jahren

Die Businessobjekte liegen in der Datenschicht

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

Original von Khalid
Die Businessobjekte liegen in der Datenschicht

Ja?
Das bedeutet aber wiederum, dass die Präsentationsschicht direkt mit der Datenzugriffsschicht verbunden ist...
Ausserdem finde ich auch, dass Business-Objekte eigentlich da nichts zu suchen haben, da sie herzhaft wenig mit Datenzugriff zu tun haben... oder seh ich das falsch?

S
1.047 Beiträge seit 2005
vor 16 Jahren

habt ihr mal ein praktisches beispiel (code?) für sowas?

weil ich weiß immer nie wer da nun wie und w elche sicht auf wen hat o.O

3.511 Beiträge seit 2005
vor 16 Jahren

@dani.net

Kann sein, das ich mich da etwas durcheinander gebracht habe. Ist noch früh am morgen 🙂.

Bin selber gerade über meine eigenen Bezeichnungen gestolpert. Bei mir Kennzeichne ich meine Tabellen (also die Datenschichtbeschreibungen) immer als Businessobjekt und in der Businesschicht als Logikobjekte (weil ich die Schicht irgendwie immer Logikschicht nenne). Muss ich dringend mal ändern =).

Im Prinzip meinen mir das gleiche denk ich mal.

Und nein, du siehst nichts falsch. Wie gesagt, bin über meine eigenen Bezeichnungen gestolpert.

Das bedeutet aber wiederum, dass die Präsentationsschicht direkt mit der Datenzugriffsschicht verbunden ist...

In bestimmten Fällen habe ich das leider so. Ist falsch, blöd, soll man nicht machen (bitte nicht steinigen).

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

Original von Khalid
Bin selber gerade über meine eigenen Bezeichnungen gestolpert. Bei mir Kennzeichne ich meine Tabellen (also die Datenschichtbeschreibungen) immer als Businessobjekt und in der Businesschicht als Logikobjekte (weil ich die Schicht irgendwie immer Logikschicht nenne).

mh, also Logikobjekte bei dir würden dann den eigentlichen Businessobjekten entsprechen? Diese sind in der Logik-Schicht definiert? Und wie übergibst du diese an die Datenzugriffsschicht?

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo dani.net,

Und wie übergibst du diese an die Datenzugriffsschicht?

gar nicht, die Datenzugriffsschicht (DAL) kann z.B. DataSets zurückliefern, aus denen die Business-Schicht (BL) dann Business-Objekte (BO) erzeugt. Dann müssen die BO nur in der BL bekannt sein. Und so soll es ja sein.

herbivore

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

Original von herbivore
gar nicht, die Datenzugriffsschicht (DAL) kann z.B. DataSets zurückliefern, aus denen die Business-Schicht (BL) dann Business-Objekte (BO) erzeugt. Dann müssen die BO nur in der BL bekannt sein. Und so soll es ja sein.

Richtig, worauf ich mich erinnere wieso ich mir diese Überlegungen überhaupt mache. Ich muss ne kleine Applikation in Java schreiben, und da gibts halt keine DataSets....

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo dani.net,

nicht? Auch nichts vergleichbares? Dann musst du dir selber etwas vergleichbares schreiben. Zumindest, wenn du auf die Entkoppelung von DAL und BL Wert legst.

herbivore

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

Original von herbivore
nicht? Auch nichts vergleichbares?

Nichts das ich kennen würde; bei meinen Java-Kenntnissen muss das aber gar nichts bedeuten 😁

Original von herbivore
Dann musst du dir selber etwas vergleichbares schreiben. Zumindest, wenn du auf die Entkoppelung von DAL und BL Wert legst.

Ok. Da werde ich in diesem Fall wohl XmlDocuments rausreichen, da die Datenbasis eh XML ist.

Aber hat mich mal so grundlegend wunder genommen. Den Ansatz den ich beschrieben habe, also die BusinessObjekte für alle zugänglich zu machen, hat nämlich den mühsamen Beigeschmack, dass diese dann natürlich keine Logik enthalten dürfen (oder sollten), also praktisch reine Attribut-Container.
Der Ansatz von herbivore mit den DataSets ist da schöner, hat dafür den (wohl vernachlässigbaren) Nachteil vom DataSet-Overhead.

S
1.047 Beiträge seit 2005
vor 16 Jahren

naja man kann ja datatable nehmen 😉

G
84 Beiträge seit 2007
vor 16 Jahren

Aber hat mich mal so grundlegend wunder genommen. Den Ansatz den ich beschrieben habe, also die BusinessObjekte für alle zugänglich zu machen, hat nämlich den mühsamen Beigeschmack, dass diese dann natürlich keine Logik enthalten dürfen (oder sollten), also praktisch reine Attribut-Container.
Der Ansatz von herbivore mit den DataSets ist da schöner, hat dafür den (wohl vernachlässigbaren) Nachteil vom DataSet-Overhead.

Ähm, jetzt hast du glaub ich was mißverstanden (oder ich hab herbivore mißverstanden^^).
DataSets zu verwenden heißt nicht, dass keine BO verwendet werden - im Gegenteil.
DataSets sind die Container zwischen DB-Layer und BL (oder DataTables, oder DataAdapter o.ä.).
Die BO definieren im Endeffekt nur die Datenstrukturen und halten die Daten vor mit denen deinen BL arbeitet ... zumindest nach meinen Verständnis ...

dani.net Themenstarter:in
175 Beiträge seit 2006
vor 16 Jahren

Der Ansatz von Herbivore sieht ja vor, DataSets aus der Datenzugriffsschicht zu liefern und aus diesen dann die BO zu erzeugen, so hab ich das verstanden und so machts für mich auch Sinn.
Das was ich beschrieben war, hat die BO bereits in der Datenzugriffsschicht erstellt und dann quer durchgereicht.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo ihr beide,

also ich glaube, wir sagen - mit unterschiedlichen Worten - alle drei das gleiche.

herbivore

G
84 Beiträge seit 2007
vor 16 Jahren

Morsche ... jo, glaub ich auch 😉

Ende jut allet jut^^