Laden...

DVD/CD Verwaltung Grundgerüst

Erstellt von R3turnz vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.449 Views
R
R3turnz Themenstarter:in
125 Beiträge seit 2016
vor 8 Jahren
DVD/CD Verwaltung Grundgerüst

Hallo,
ich möchte mich noch in OOP beschäftigen, und habe aus dem Projekt Thread Inperation geholt.
Ich möchte aber nicht drauflos programmieren, sondern ersteinmal ein Gerüst haben. Ich habe es mir so gedacht:

->CDDVDLibaryClient
-Proccess()

->CDDVDLibary
-List<IMedium> mediums
-Save
-Load
-Print
(Vieleicht Ausgaben nach Typen z.B. nur DVD's ausgeben. Dazu wäre Linq nützlich, muss ich mir erst noch beibringen)

->IMedium
-Name
-Länge
-Erscheinungsdatum
-Event Input Needed

->DVD : IMedium
-List<Schauspieler>
-Sprache
-Untertiel
-Hörausgabe

->CD : IMedium
-List<titel>Titel

->IAttribut
Name
InputNeeded Event

Die restlichen Klassen für die Attrribute..

Ist das Gerüst so okay?

LG

PS:Mir ist gerade aufgefallen, dass ich alles auf deutsch habe, werde später aus z.B. Schauspieler Actor machen.

J
251 Beiträge seit 2012
vor 8 Jahren

Bisschen grob überfolgen und sieht für den Anfang relativ gut aus.

Ein gutes Gerüst könnte man per UML darstellen für sich und andere, so als Gerüst-Tipp

C
1.214 Beiträge seit 2006
vor 8 Jahren

Schwer zu sagen, obs Sinn macht, kommt auf die Anforderungen usw. drauf an. Bei IMedium, DVD und CD könnte man noch viele weitere Eigenschaften hinzufügen, aber das ist erstmal unwichtig.

Was mir z.B. nicht so gefällt, ist dass die CDDVDLibrary (besser wäre wohl MediumLibrary, vielleicht kommt später ja noch was dazu) die Funktionen Load, Save und Print hat. Kann man so oder so sehen. Ich bin jedenfalls kein Anhänger davon, solche Funktionen in eine Logik- oder Verwaltungsklasse zu packen. Das ist etwas, was man normalerweise gut außerhalb der Klasse implementieren kann. Was heißt denn speichern? Willst du die Daten jetzt in einer Datenbank speichern? Aber vielleicht willst es später auf XML umstellen. Oder einen Export für andere Formate/Programme anbieten. Jedenfalls kann man das gut in andere Klassen packen, z.B. ILibraryExporter und eine Implementierung NativeFormatLibraryExporter oder so.