Laden...

Klassendesign mit ObservableCollection

Erstellt von echdeneth vor 2 Jahren Letzter Beitrag vor 2 Jahren 435 Views
echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 2 Jahren
Klassendesign mit ObservableCollection

Moin,

auf die Gefahr hin hier nicht am richtigen Ort zu sein...

Ich muss an einem Klassendiagramm arbeiten, die Grundlegenden Mechaniken sind soweit geläufig, die Praxis fehlt mir aber.

EIne der Klassen enthält eine ObservableCollecion.
Nun bin ich mit nbicht sicher wie und ob ich den Datentyp und die Beziehung der OC richtig darstelle.


public ObservableCollection<Innentür> innentuerliste { get; set; }

Warenkorb enthält eine Auflistung von Türen


public ObservableCollection<Dekor> dekor{ get; set; }

Eine Tür enthält ein Dekor aus der OC (auch wenn ich darüber noch mal nachdenken muss...)
Es sollen Dekore ausgelesen werden und eines davon in der Klasse Innentür neu instanziert, in etwa...

Ich hoffe meine Anfrage war verständig.
Habe ich das richtig gemacht?

Danke.

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

309 Beiträge seit 2020
vor 2 Jahren

Bei VS2019 Professional gibt es übrigens den Klassen-Designer der deine Klassen visualisieren kann, falls du die Version hast.
Deine Feldernamen sehen ehr nach Java aus. Public Felder und Methoden schreibt man eigentlich groß in C# und private klein oder mit "_". https://docs.microsoft.com/de-de/dotnet/standard/design-guidelines/

16.788 Beiträge seit 2008
vor 2 Jahren

Aus persönlichem Interesse: ich muss sagen, dass ich seit > 10 Jahren keine sinnvolle Anforderung / Begründung für ein Klassendesign / UML mehr gesehen habe (gerne kann man mal nach verschiedenen Thesen Rund um die Sinnhaftigkeit von UML googlen). Ich versuche aktiv jeden Kunden von UML wegzubewegen; nicht ein Kunde konnte mir bislang mehr Anforderung an ein Diagramm nennen als "Macht man doch immer, oder nicht?".
Ist das eine Übungsaufgabe oder habt ihr irgendeine interne/Zertifikatsbasierte Regelung von aka 1995, die ein Klassendesign erfordert?

Zur Frage: Basis UML Tools unterstützen keine Generics.
Auch steht oft die Frage im Raum, ob eine spezifische Angabe (hier ObservableCollection) in das UML gehört oder nicht.
Die meisten, die ich sehe, verwenden nur "Array<T>" um sowas darzustellen.

PS: ja, sieht für mich auch extrem nach Java aus und weit weg vom C# Guide bzw. sogar etwas weg von modernem OOP (Eine zB. Absenden() Aktion in einem Business Objekt "Angebot" ist eher kein gutes, modernes OOP Design).

echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 2 Jahren

Deine Feldernamen sehen ehr nach Java aus){gray}

Wurde mit Dia 0.97.2 erstellt, deiner Bemerkung folgend, darf ich annehmen, dass meine Wahl hinsichtlich der Zeichensoftware falsch war.

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 2 Jahren

(VS19/C#) Ist in Dia erstellt, für mein Prüfungsprojekt

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

echdeneth Themenstarter:in
161 Beiträge seit 2019
vor 2 Jahren

(Eine zB. Absenden() Aktion in einem Business Objekt "Angebot" ist eher kein gutes, modernes OOP Design).

Sorry, ich bin die Arbeit mit Klassendiagrammen nicht gewohnt...
Ist ja auch nur eine erste Fassung.

"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein

16.788 Beiträge seit 2008
vor 2 Jahren

Ah Okay, also Schule/Studium. Ja, da sind viele Lehrer etc, die nicht mehr am Zahn der Zeit hängen, und UML sehen wollen.
Verstehe - muss man durch.

Wenn Du Dir von VS die UMLs erzeugen lassen kannst und nicht Dia verwenden musst, dann nimm VS.
Das machts Dir leichter und Du bist effizienter.

Add Class Diagrams to projects (Class Designer) - Visual Studio

PS: bitte schreib doch nicht für 3 Sätze 3 Beiträge in 5 Minuten.
Das passt doch alles auch ganz gut in einen Beitrag 😉

(Eine zB. Absenden() Aktion in einem Business Objekt "Angebot" ist eher kein gutes, modernes OOP Design).

Damit war weniger das OOP gemeint, sondern die Software Architektur.
Ich vermude aber, dass das in Deiner Projektarbeit nicht so wichtig ist; war also eher ein reiner Hinweis als eine Kritik.

T
73 Beiträge seit 2004
vor 2 Jahren

Hallo echdeneth

Gemäß UML ist das nicht so wild (obwohl ich persönlich das etwas anders lösen würde, aber okay...).

Die ObserveableCollection ist ein fester Bestandteil der Warenkorb Klasse, und somit als NUR LESEND zu setzen!
Also


public readonly ObservableCollection<Innentür> innentuerliste = new (); *

*kommt drauf an welche C# Version ihr benutzt...

Dekor ist nach UML keine Liste sondern eine Eigenschaft. Das drückt die Zahl 1 am Pfeil aus, es ist nur 1 Element.

Fragt sich, ob Dekor als NULL zu interpretieren ist wenn nicht benötigt, oder leere Standardwerte (besser)?