Frage

Dies ist weniger ein Code spezifische Frage und eine Objective-C Nomenklatur Frage. In C haben Sie struct für reine Daten. In Enterprise Java, haben Sie „bean“ Klassen, die rein Membervariablen mit Getter und Setter sind, aber keine Geschäftslogik. In Adobe FLEX haben Sie "Value-Objekte".

In Objective-C gibt es einen richtigen Namen für ein Objekt (abstammen von NSObject, natürlich), die einfach ivars und Getter / Setter (oder @property / @ synthesize, wenn Sie Lust zu bekommen) hat und keine wirkliche Geschäftslogik?

Ein konkreteres Beispiel könnte eine einfache Klasse mit Getter und Setter für Dateinamen, Dateigröße, die Beschreibung und verschiedene andere Metadaten sein. Sie könnten dann eine Reihe von ihnen nehmen und sie leicht werfen in einen Behälter (NSDictionary, NSArray) ohne die Notwendigkeit einer unordentlichen NSValue Verpackung einer C-Struktur. Es ist auch ein wenig mehr Struktur als setzen, sagen wir, ein paar lose typisierte Kind NSDictionaries in einem übergeordneten Container-Objekt.

War es hilfreich?

Lösung

Nein, es gibt keinen besonderen Namen (zumindest soweit ich weiß). Alle Objective-C-Objekte, die vererben NSObject First-Class-Objekte sind. Sie können Klassen natürlich implementieren mit nur Getter und Setter, aber selbst synthetisiert Eigenschaften mild „Business-Logik“ für die Unteilbarkeit und Speicherverwaltung. Sie können C structs für reine Daten verwenden, wenn Sie wollen (ein Beispiel in Cocoa ist NSRect), aber dann, wie Sie sagen, es schwieriger ist, mit anderen Klassen wie NSDictionary zu verwenden.

Andere Tipps

Es gibt keinen offiziellen Namen für eine solche Klasse in Objective-C. Menschen neigen dazu, solche Dinge wie „Wertobjekte“ oder beziehen „reine Datenobjekte“, aber diese beiden sind so eine Art überlastet, da sie auch zu NSValue (oder alternativ Wert eine Eigenschaftsliste) und NSData Subklassen beziehen genommen werden konnte. Letzteres ist die prägnanteste Weise, sie zu beschreiben, denke ich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top