Für meine Hausaufgaben setze ich ein Kursregistrierungssystem für eine Universität um und ich implementierte eine einfache Klasse für den Lehrplan mit einer Liste von Semestern und anderen Eigenschaften wie Name der Abteilung, Gesamtanzahl der Credits usw.
Aber ich frage mich, ob ich diese Klasse von einer Graph-Datenstruktur mit Kanten und Scheitelpunkten erben kann.
Hat jemand schon einmal ähnliche Sachen gemacht?
Mein aktuelles Design ist ungefähr so:
%Vor%Als Unternehmensarchitekt würde ich absolut keine Graphenstruktur für diese Daten verwenden. Diese Daten sind eine Liste und nichts mehr.
Bei einem ähnlichen Problem wäre der einzige Grund, den ich jemals in Betracht ziehen würde, eine Graphenstruktur zu verwenden, die Beziehung der Kursanforderungen und -voraussetzungen zu erstellen.
Auf diese Weise können Sie dann mithilfe des Graphenalgorithmus feststellen, ob es für einen Schüler zulässig ist, sich für eine Klasse zu registrieren, indem Sie sicherstellen, dass es sich um eine gültige Erweiterung der Struktur handelt. Dasselbe gilt für das Entfernen von Klassen. Es kann überprüft werden, ob Sie keine Klasse löschen und in der Übung für das Klassenbeispiel bleiben.
Wenn ich das jetzt wirklich umsetzen würde. Ich hätte immer noch eine Gesamtliste von Klassen, die einen Schlüssel für den Scheitelpunkt in der Diagrammdarstellung haben. Eine Sache zu beachten ist, dass Grafikalgorithmen über den größten schweren Schläger sind, den Sie in eine Datenbank werfen können, so dass die Menge an Arbeit minimiert wird, die ausgeführt wird, um den Graphen herauszuziehen, immer der Schlüssel. Abhängig von der Größe und dem Umfang würde ich auch auswerten, ob ich ganze Graphen in serialisierter Form speichern oder aus demselben Grund eine Dokumentendatenbank verwenden könnte.
Was in diesem Beispiel die wahrscheinlichste Route wäre, würde ich nehmen. Ich würde das gesamte Objekt von Voraussetzungen, Voraussetzungen usw. direkt mit meinem Kursobjekt speichern. Da das Diagramm ein gesetztes und erledigtes Ereignis ist, ist es nicht notwendig, eine tatsächliche Graph-Traversierung durchzuführen, und Sie sollten besser den vorberechneten Graph speichern.
Ja, Sie können diese Klasse von einer Diagrammdatenstruktur erben. Sie können es zu einer Unterklasse von allem machen, was Sie wollen (außer für eine versiegelte Klasse). Die Frage, ob es ein kluges Design ist oder nicht, hängt völlig davon ab, was Sie tun möchten. Ich nehme an, Sie wissen wie, also kommentieren Sie, wenn Sie ein Beispiel für die Implementierung der Vererbung benötigen.
Wenn Sie Ihre eigenen Algorithmen schreiben möchten, warum modellieren Sie sie nicht einfach selbst? Es wäre wahrscheinlich eine lustige Übung.
Tags und Links c#