Frage zur Modellierung in OO (am Beispiel SAP-CO)

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
2 Beiträge • Seite 1 von 1
2 Beiträge Seite 1 von 1

Frage zur Modellierung in OO (am Beispiel SAP-CO)

Beitrag von Ingo (ForumUser / 20 / 9 / 0 ) » 30.06.2020 11:52
Moin moin,

ich hätte eine grundlegende Verständnisfrage zur Modellierung in OO oder hätte gerne etwas Input von Experten, da mein Wissen da recht überschaubar ist.

Im Controlling hatte ich mir eine Oberklasse (+Interface) für Organisationsebenen und Grundlegendes angelegt, was nach unten vererbt wird. Als Model bzw. Selektionsklassen habe ich darunter noch jeweils eine Klasse für Stamm- und Bewegungsdaten angelegt, über die alle Daten die benötigt werden über eine get-Methode selektiert werden können (optionale Parameter). Die einzelnen Objekte wie Kostenstelle, Leistungsart etc. haben darunter eigene Klassen (können auch seperat angesteuert werden), auf die diese Methode bei Bedarf zugreift.

Meine Frage wäre: Meint Ihr das macht so Sinn? Würdet Ihr die Bewegungsdaten in die Klasse des Stammsatzes (z.B. Kostenstelle) mit aufnehmen?

Für ein paar Ideen wäre ich dankbar.

VG,
Ingo


Re: Frage zur Modellierung in OO (am Beispiel SAP-CO)

Beitrag von gtoXX (Specialist / 150 / 31 / 22 ) » 08.07.2020 18:46
Die erste Frage um Dir Anregungen zu geben wäre : Welche Funktion soll dein Objekt haben ?

Grundsätzlich trennt man Datenbeschaffung( über DAOs ( Data Access Objekt ) von Businesslogik und Prozessen. Es klingt ein wenig wie ein DTO( Datatransferobjekt ) das du da aufbaust. Ist dem so, sind Subentitäten wiederum eigene DTOs, einzelne Datensätze wiederum können darin als Objekte oder auch als Tabellen behandelt werden. Zur Erzeugung baut man sich dann einen Service oder eine Factory, die das entsprechende DTO dann aufbaut. Idealerweise Referenzieren die DTOs im Haupt-DTO auf eine eigene abstrakte DTO - Klasse je Entität, so sind sie bei Bedarf austauschbar. Es gibt mehrere Wege zu modellieren. Ohne zu wissen, was Du eigentlich tun willst, ist es schwer zu sagen, was sinnvoll ist.

Ob und welche Daten benötigt werden, ist immer prozessabhängig. Schnell liest man sich so Sachen von der DB zusammen, die man für den Prozess niemals braucht.

Ich lese da viel von Vererbung. Aber nur, weil es eine scheinbare Hierarchie gibt, sollte man nicht Objekte mit etwas überfrachten, sondern z.b schauen, ob nicht die Hierarchie eigentlich ein Attribut ist, was wiederum selbst ja ein Objekt sein kann.

Man muss sich also immer fragen : Was soll mein Objekt können, was muss es können, und was braucht es dafür.

Z.b. dein Objekt der Kostenstelle kann durchaus über eine Liste von Bewegungsdaten verfügen. Und zum Beispiel Interator-Funktionen wie HAS_NEXT, GET_NEXT etc. diese zur Verfügung stellen. Die Bewegungsdaten selbst, können dabei auch wieder Objekte sein.

Der Stammdatenteil der Kostenstelle sind dabei wiederum Attribute am Kostenstellen objekt, die über Setter und Getter bereitgestellt werden.
"Code lügt nicht ^^"

Seite 1 von 1

Über diesen Beitrag



Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Vergleichbare Themen

ALV Beispiel
von kirmuh » 10.04.2008 10:41
Beispiel für DropdownListBox needed
von Gast » 18.05.2004 14:17
SapScript Beispiel zu QM_QCERT_01
von SKAMS » 19.07.2005 15:14
Idoc - einfaches Beispiel
von Gast » 14.03.2005 20:20
BAPI_ACC_DOCUMENT_POST FB60 Beispiel
von HH_ABAP » 26.09.2018 11:11