Вот то, что я ищу:
Я хотел бы разделить части функциональности на модули или компоненты какого-то типа для ограничивают видимость других классов, чтобы каждый класс не имел доступа ко всем остальным классам , что со временем приводит к спагетти-коду.
В Java и Eclipse, например, я бы использовал пакеты и поместил каждый пакет в отдельный проект с четко определенной структурой зависимостей.
Что я рассмотрел:
- Использование отдельных папок для исходных файлов и использование групп в Xcode :
- Плюсы: простота выполнения, почти не требуется конфигурация Xcode
- Минусы: нет разделения функций во время компиляции, т.е. доступ ко всему осуществляется одним
#import
оператором
- Использование фреймворков :
- Плюсы: код фреймворка не может получить доступ к классам вне фреймворка. Это обеспечивает инкапсуляцию и сохраняет отдельные вещи
- . Минусы: управление кодом является громоздким, если вы работаете на нескольких платформах одновременно. Каждая платформа - это отдельный проект Xcode с отдельным окном
- Использование подключаемых модулей :
- Плюсы: Подобно фреймворкам, код плагина не может получить доступ к коду других плагинов. Чистое разделение во время компиляции. Источник плагина может быть частью того же проекта Xcode.
- Минусы: Не уверен. Это может быть подходящим вариантом ...
Исходя из вашего опыта, что бы вы выбрали, чтобы сохранить отдельные вещи, имея возможность редактировать все источники в одном проекте?
Изменить:
- Я нацелен на Mac OS X
- Я действительно ищу решение для принудительного разделения во время компиляции
- Под плагинами я имею в виду пакеты Cocoa (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual /LoadingCode/Concepts/Plugins.html)
задан Mark 8 July 2011 в 14:15
поделиться