Я пытаюсь создать многократно проверенные фреймворки для моего собственного Network Manager (HTTPManager - извиняюсь за имя, как вы увидите) и DataManager (DataManager).
Я хочу, чтобы они были отдельными модулями (потому что в конечном итоге я хочу, чтобы DataManager мог использовать любой сетевой менеджер; т. Е. Сетевой менеджер мог доставлять данные в диспетчер данных из веб-службы или базы данных, поэтому в конечном итоге DataManager можетиметь несколько HTTPManager)
DataManager создает экземпляр HTTPManager, соответствующий протоколу HTTPManager.
Теперь DataManager не связан слюбой конкретный HTTPManager.
Должен ли я просто скопировать и вставить протокол в DataManager?Это кажется очень плохим решением, и я могу добавить к протоколу позже.
Итак, как я могу обеспечить видимость класса DataManager HTTPManagerProtocol?Обратите внимание, что это действительно обобщенный вопрос о том, как я могу взаимодействовать между модулями вне проекта, не вставляя копирование в протокол между модулями.