Я пишу приложение, которое в основном использует 5 бизнес-объектов, A, B C, D и E
- A имеет некоторые свойства и содержит список B's
- B имеет некоторые другие свойства и список C и список D
- C имеет некоторые другие свойства и список D и список E
- D имеет только несколько свойств
- E имеет только несколько свойств
Нет наследства между любым из них.
Здесь нет реальной бизнес-логики, объекты создаются, заполняются, а затем получают доступ только для чтения, никаких дальнейших манипуляций.
Моим естественным стилем кодирования было бы использование объектно-ориентированного программирования и запись классов для каждой из этих сущностей, использование NSArrays для списков и синтезирование упомянутых свойств.
Это сделает код читабельным.
Но очевиден и другой подход: использовать только NSDictionaries и NSArrays и работать с ключами / значениями вместо свойств. Это кажется мне более эффективным и как-то «ближе» к программированию в стиле iPhone ... но, очевидно, приводит к менее читаемому коду. Другое преимущество заключается в том, что для сериализации не требуется никакого дополнительного пользовательского кодирования / декодирования (сохранение состояния на диск с использованием JSON, ...)
Так что на бумаге это говорит о последнем подходе, с другой стороны, он все еще чувствует себя как-то неловко НЕ использовать пользовательские объекты ...
Это действительно просто вопрос вкуса ? Или есть другие аргументы в пользу / против одного из подходов? Только использование словарей лучше с точки зрения памяти / производительности? Это предпочтительный стиль Apple Coding Style? (Я с Java / C #).