Junior — Middle
92
Můžeš uvést příklad, který ilustruje použití principů SOLID při vývoji?
Společnosti byly požádány
О5.ru
Летуаль
Odpověď od AI
sobes.tech AI
Рассмотрим простой пример на Swift, иллюстрирующий применение принципов SOLID в iOS-разработке.
// Single Responsibility Principle: каждый класс отвечает за свою задачу
protocol DataFetcher {
func fetchData(completion: (Data?) -> Void)
}
class NetworkDataFetcher: DataFetcher {
func fetchData(completion: (Data?) -> Void) {
// загрузка данных из сети
}
}
// Open/Closed Principle: класс расширяем, но не изменяем
class DataProcessor {
func process(data: Data) {
// базовая обработка
}
}
class JSONDataProcessor: DataProcessor {
override func process(data: Data) {
// обработка JSON
}
}
// Dependency Inversion Principle: зависимость от абстракций
class ViewModel {
private let dataFetcher: DataFetcher
private let dataProcessor: DataProcessor
init(dataFetcher: DataFetcher, dataProcessor: DataProcessor) {
self.dataFetcher = dataFetcher
self.dataProcessor = dataProcessor
}
func loadData() {
dataFetcher.fetchData { data in
if let data = data {
dataProcessor.process(data: data)
}
}
}
}
В этом примере:
- Каждый класс имеет одну ответственность (SRP).
- Можно расширять обработчики данных, не меняя базовый класс (OCP).
ViewModelзависит от абстракций (DataFetcher,DataProcessor), а не от конкретных реализаций (DIP).
Такой подход облегчает тестирование, поддержку и расширение кода.