Ich lese Clean Code von Robert Martin und es gibt ein Kapitel namens "Objects and Data Structures", das beschreibt, wie eine Klasse entweder eine Datenstruktur oder ein Objekt sein sollte. Das Wesentliche ist:Sind Modelle Objekte oder Datenstrukturen?
- „Objekte ihre Daten hinter Abstraktionen verbergen und Funktionen aussetzen auf ihre Daten arbeiten“
- „Datenstrukturen aussetzen ihre Daten und haben keine sinnvolle Funktionen“
Es fährt dann fort um "Hybride" zu beschreiben, die "ein verworrenes Design anzeigen".
In einem Framework wie MVC stellt ein Modell normalerweise alle seine Eigenschaften zur Verfügung, enthält aber auch Funktionen, um mit seinen Daten zu arbeiten und Dinge zu tun (providing the model isn't just a class of properties). Ist dies nicht ein Modell, das eine hybride Struktur ist, oder bin ich etwas falsch?
Vielen Dank für Ihre Antwort, Die Sache, die ich nicht bekommen, ist, dass in der Modellklasse, wenn Entity Framework zum Beispiel, X und Y würde öffentliche Eigenschaften, die auf die Datenbank zuordnen. Dadurch werden nun die Details des Modells offen gelegt und eine hybride Struktur erzeugt. – Michael
Eigenschaften in C# sind nur Syntaxzucker für Getter- und Setter-Methoden. Sie zählen nicht wirklich als echte Methoden. Sie fügen Ihrer Modellklasse kein Verhalten hinzu. Ihre Klasse hat also nur Methoden zum Abrufen oder Festlegen ihrer Attribute, was sie zu einer einfachen Datenstruktur macht. – Pox
Aber Robert Martins Beschreibung einer Datenstruktur sagt, dass es keine sinnvollen Funktionen hat. GetLength() wäre sicherlich eine sinnvolle Funktion? – Michael