Назад к вопросам
Junior — Middle
75
Какие шаблоны проектирования применяешь в своей практике?
Компании, где спрашивали
Uzum
bip.ru
Ответ от нейросети
sobes.tech AI
В практике разработки на iOS часто применяются следующие шаблоны проектирования:
- MVC (Model-View-Controller) — разделение данных, интерфейса и логики управления.
- MVVM (Model-View-ViewModel) — отделение представления от бизнес-логики с помощью ViewModel, часто используется с привязкой данных.
- Singleton — для создания единственного экземпляра класса, например, менеджера настроек или сессии.
- Delegate — для передачи событий между объектами, широко используется в UIKit.
- Observer (NotificationCenter, KVO) — для реагирования на изменения состояния.
- Factory — для создания объектов без указания конкретных классов.
Пример использования Delegate:
protocol DataReceiverDelegate: AnyObject {
func didReceiveData(_ data: String)
}
class DataProvider {
weak var delegate: DataReceiverDelegate?
func fetchData() {
// Получаем данные
let data = "Пример данных"
delegate?.didReceiveData(data)
}
}
class ViewController: UIViewController, DataReceiverDelegate {
let provider = DataProvider()
override func viewDidLoad() {
super.viewDidLoad()
provider.delegate = self
provider.fetchData()
}
func didReceiveData(_ data: String) {
print("Получены данные: \(data)")
}
}