2010-05-16 9 views
2

Ceci est moins une question spécifique au code et plus d'une question de nomenclature Objective-C. En C vous avez struct pour les données pures. Dans Enterprise Java, vous avez des classes "bean" qui sont des variables purement membres avec getters et setters, mais pas de logique métier. Dans Adobe FLEX, vous avez "Value Objects". En Objective-C, y a-t-il un nom propre pour un objet (descendant de NSObject, bien sûr) qui a simplement des ivars et des getters/setters (ou @ property/@ synthesize, si vous voulez avoir envie) et non vraie logique métier?Y a-t-il un nom pour une classe Objective-C pure-data?

Un exemple plus concret pourrait être une classe simple avec des getters et des setters pour le nom de fichier, la taille du fichier, la description et d'autres métadonnées assorties. Vous pouvez alors en prendre beaucoup et les jeter facilement dans un conteneur (NSDictionary, NSArray) sans avoir besoin d'encapsuler NSValue d'une structure C. C'est aussi un peu plus de structure que de mettre, disons, un tas de NSDictionary enfant mal lues dans un objet container parent.

Répondre

2

Non, il n'y a pas de nom particulier (du moins pour autant que je sache). Tous les objets Objective-C qui héritent de NSObject sont des objets de première classe. Vous pouvez bien sûr implémenter des classes avec seulement des getters et des setters, mais même les propriétés synthétisées ont une "logique métier" légère pour l'atomicité et la gestion de la mémoire. Vous pouvez utiliser C structs pour les données pures si vous le souhaitez (un exemple dans Cocoa est NSRect), mais ensuite, comme vous le dites, il est plus difficile à utiliser avec d'autres classes telles que NSDictionary.

+0

Je vois ce que vous pensez de la "logique métier" sous-jacente que vous obtenez avec NSObject. On peut dire que vous obtenez des bagages similaires en Java en héritant de java.lang.Object et pourtant ils sont toujours considérés comme purement des données, malgré les méthodes liées au threading. – BrianEnigma

0

Il n'y a pas de nom officiel pour une telle classe dans Objective-C. Les gens ont tendance à se référer à des objets tels que «objets de valeur» ou «objets de données purs», mais ils sont en quelque sorte surchargés puisqu'ils peuvent également être considérés comme faisant référence à NSValue (ou à une valeur de liste de propriétés). Ce dernier est la manière la plus concise de les décrire, je pense.