Назад к вопросам
Локобанк
Junior — Middle
78
Кто отвечает за удержание объекта Presenter с помощью сильной ссылки в архитектуре MVP?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В архитектуре MVP (Model-View-Presenter) ответственность за удержание объекта Presenter с помощью сильной ссылки обычно лежит на View (например, UIViewController).
View создаёт Presenter и хранит сильную ссылку на него, чтобы Presenter не был деаллоцирован, пока View активна. В то же время Presenter обычно держит слабую ссылку на View, чтобы избежать циклических ссылок и утечек памяти.
Пример:
class ViewController: UIViewController {
var presenter: Presenter! // сильная ссылка
override func viewDidLoad() {
super.viewDidLoad()
presenter = Presenter(view: self)
}
}
class Presenter {
weak var view: ViewController? // слабая ссылка
init(view: ViewController) {
self.view = view
}
}