Где поставить мой Struct, чтобы классы были независимыми? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть класс, который я хочу использовать повторно (для любого пользователя-разработчика, который этого хочет, или вне моего проекта).Этот класс возвращает Struct, назовем его structA, а класс - classA.

Первая мысль - поместить structA в тот же файл этого классатаким образом, в то время как Struct является общедоступным, любой пользователь, получивший этот файл класса, может прочитать этот Struct, который возвращает класс.

До тех пор, пока это не будет выглядеть разумно.(или нет)

Но что произойдет, если другие классы в моем текущем проекте также должны использовать этот Struct для других целей?(его копия)

Затем, чтобы сделать код многоразовым, мне нужно поместить эту структуру в другое место.Под многократным использованием я подразумеваю, что нет никаких зависимостей - получите файл класса, и это все.

Если он находится вне classA, то classA становится не для повторного использования и зависимым.

Если он внутри classA, то другой класс, который его использует, также является зависимым (не подлежит повторному использованию снаружи)

Осталось только одно решение - создать другие структуры, подобные этой, с другими именами (звучит плохо)

Где бы вы поместили это Struct в вашем проекте XCode?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Поместите вашу структуру в отдельный файл и документ для каждого класса, который вы хотите использовать повторно, это зависит от этой структуры.Таким образом, в основном вы также делаете свою структуру многократно используемой.

Процесс повторного использования вашего класса становится немного сложнее - вы также должны включить его зависимости .Но это просто факт жизни, в основном все программное обеспечение имеет зависимости.Чтобы упростить добавление некоторых управляющих зависимостей кода, таких как Cocoapods , Carthage или Swift Package Manager , были изобретены.С теми, которые вы указываете для каждой библиотеки, от чего она зависит - поэтому ClassA зависит от StructA.В проекте, который вы хотите использовать ClassA, вы указываете только эту зависимость, и менеджер пакетов устанавливает все ее зависимости (и их зависимости и т. Д.) Вместе.

0 голосов
/ 24 ноября 2018

Вы можете создать отдельную библиотеку или структуру, которая будет содержать все повторно используемые классы и структуры.

Когда вы хотите использовать класс classA или структуру structA, вы можете просто импортировать эту библиотеку в соответствующий файл.

Повторять код не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...