Рассмотрим этот случай, переменную, объявленную в extension
, вот так.
extension UIViewController {
var apiClient: APIClient {
return APIClientImplementation()
}
}
Возвращает ли это расширение новый экземпляр каждый раз, когда я вызываю его из другого UIViewController
, если да, то как это влияет на память?
Если нет, то это может вызвать проблему, что я получаю один и тот же экземпляр для всех UIViewController
, в которых я использую этот экземпляр, и, как вы можете сказать, это экземпляр APIClient
, который используется для внедренный в другой экземпляр класса GateWay
, может ли это привести к проблеме в будущем?
Примечание : GateWay
класс - это экземпляр класса, который я использую для выполнения запросов API, каждый кусок сервисов имеет свой собственный шлюз.
Я знаю, что могу использовать протокол, чтобы применять правила к желаемому UIViewController
, чтобы каждый раз создавать экземпляр.
Чего я хочу добиться, так это писать меньше кода с меньшими проблемами в будущем и удалять ненужные куски кода.