DevPrep

Все темы › Объектно-ориентированное программирование (ООП)

Сравнение ООП с другими парадигмами

Junior

Суть

Парадигма — это способ организовать код и состояние. Swift мультипарадигменный, поэтому вопрос на интервью обычно звучит как «когда что применять».

Пример одной задачи в трёх стилях

let prices = [120.0, 80.0, 45.0]

// Procedural: step-by-step mutation
var sum = 0.0
for p in prices where p > 50 { sum += p }

// Functional: pure transformations, no mutation
let sum2 = prices.filter { $0 > 50 }.reduce(0, +)

// Protocol-oriented: behaviour attached to a protocol, works for any Sequence
extension Sequence where Element == Double {
    func total(over threshold: Double) -> Double {
        filter { $0 > threshold }.reduce(0, +)
    }
}
print(sum, sum2, prices.total(over: 50))   // 200.0 200.0 200.0

Как это выглядит в iOS-проекте

На что смотрит интервьюер

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store