Есть ли название для класса Objective-C с чистыми данными? - PullRequest
2 голосов
/ 16 мая 2010

Это не вопрос, специфичный для кода, а вопрос номенклатуры Objective-C. В C у вас есть struct для чистых данных. В Enterprise Java у вас есть классы «bean», которые являются чисто переменными-членами с геттерами и сеттерами, но не имеют бизнес-логики. В Adobe FLEX у вас есть «Объекты значения».

В Objective-C есть собственное имя для объекта (произошедшего от NSObject, конечно), который просто имеет ивары и геттеры / сеттеры (или @ property / @ synthesize, если вы хотите получить фантазию) и никакого реального бизнес логика?

Более конкретным примером может быть простой класс с геттерами и сеттерами для имени файла, размера файла, описания и других метаданных. Затем вы можете взять их и легко выбросить в контейнер (NSDictionary, NSArray) без необходимости в грязном обтекании NSValue структуры C. Это также немного более сложная структура, чем, например, помещение в родительский контейнер объекта, например, набора дочерних NSDictionaries со свободным типом.

Ответы [ 2 ]

2 голосов
/ 16 мая 2010

Нет, особого имени нет (по крайней мере, насколько я знаю). Все объекты Objective C, которые наследуются от NSObject, являются объектами первого класса. Конечно, вы можете реализовать классы только с помощью методов получения и установки, но даже у синтезированных свойств есть мягкая «бизнес-логика» для управления атомарностью и памятью. Вы можете использовать структуры C для чистых данных, если хотите (например, в Какао NSRect), но тогда, как вы говорите, его труднее использовать с другими классами, такими как NSDictionary.

0 голосов
/ 17 мая 2010

В Objective-C нет официального названия для такого класса. Люди склонны называть такие вещи «объектами значений» или «объектами чистых данных», но оба они являются своего рода перегруженными, поскольку их также можно использовать для ссылки на NSValue (или, альтернативно, на значение списка свойств) и подклассы NSData. Я думаю, что последний является наиболее кратким способом их описания.

...