Klassenorganisation | Vererbung

JohnnyCTW

Mitglied
Hallo liebe Gemeinde,

ich plane derzeit ein neues überarbeitetes Lagerprogramm zum Hinzufügen von Artikeln, bearbeiten, ändern etc.
Nun stehe ich wiedereinmal vor dem Problem, dass ich seither immer hatte und habe.

Die Organisation der OOP und wie vererbt werden sollte.
Vorgestellt hätte ich mir z.B.: etwas wie:

ChangeArticles - Superklasse
als Subklassen hätte ich dann: EditArticles, AssessArticles, CreateArticles etc.

da nun alle Subklassen GUI Elemente besitzen werde stelle ich mir die Frage ob ich nicht eine GUI Klasse als Superklasse über der "ChangeArticles" setze und sie beide abstract mache.
oder ist es klüger, die GUI in einer kompletten Klasse zu lassen? das könnte ich mir aber nicht vorstellen :bahnhof:

GUI ---> ChangeArticles ----> Edit/Assess/Create

Eine andere Überlegung wäre gewesen mit Schnittstellen zu arbeiten.

Bitte um Hilfe, ob dies ein OO-Konzept ist, dass verwendet werden sollte. ???:L

Wenn jemand Lehrbücher zur OOP findet bzgl. Polymorphie, dann wäre ich sehr dankbar.


MfG
 
Klingt auf den ersten Blick alles ein wenig unsinnig, oder es ist nicht so ganz klar, was du tatsächlich willst.

Zum einen: Du solltest GUI und Programm-Logik trennen. Der GUI sollte es egal sein, wo die Daten herkommen und was anschließend damit passiert. Sie dient wirklich ausschließlich als Schnittstelle zwischen deinem Programm und dem Endnutzer.

Zum anderen halte ich deine Aufteilung für wenig sinnvoll. Was erhoffst du dir dadurch, dass dur "edit", "create" und "assess" jeweils von einer gemeinsamen Basis-Klasse ableitest? Gemeinsamkeiten sind da ja doch recht überschaubar... Ich halte es da in der Regel eher so, dass ich ein Interface erstelle, in denen ich diese Basis-Funktionalitäten ("create", "delete" etc..) definiere. Anschließend wird dieses Interface von einer (evtl abstrakten) generischen Basis-Klasse implementiert, in der die grundlegenden Funktionalitäten schon fertig implementiert werden. Danach wird, speziell für "Artikel" mit ganz kleinem Aufwand eine Sub-Klasse davon erstellt, sodass ich nun für "Artikel" all dieses Funktionalitäten zur Verfügung habe. Die Arbeit wird dann aber nur einmal gemacht, will man nun die gleichen Funktionalitäten nicht nur für "Artikel", sondern auch z.B. für "User", "Hund", "Auto" oder was auch immer haben, hat man quasi keine Arbeit mehr zu erledigen. In der UI wird dann aber nur gegen das anfngliche Interface programmiert, so kann die Implementierung später ohne jegliche Änderung an der UI, ausgetauscht werden. (etwa, weil neue Technologien eingesetzt werden können oder sonstiges..)
 

Neue Themen


Zurück
Oben