Есть ли название для класса Objective-C с чистыми данными?

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

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

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

2 ответа

Решение

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

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

Другие вопросы по тегам