Sobes.tech
Junior — Middle

Кадом усулро истифода мебаред: усули синф ё усули статик, ва чаро?

sobes.tech AI

Ҷавоб аз AI

Интихоб байни усули намунаи синф ва усули статикӣ вобаста ба контекст:

  • Усули синф (усули намуна) истифода мешавад, вақте ки усул бо ҳолати объект муайян кор мекунад, яъне аз арзишҳои хусусиятҳои он вобаста аст.
  • Усули статикӣ аз ҳолати объект вобаста нест ва метавонад бе эҷоди намунаи синф даъват карда шавад.

Дар iOS (Swift/Objective-C) одатан усулҳои намуна истифода мешаванд, агар лозим бошад бо маълумоти объект кор кардан. Усулҳои статикӣ барои функсияҳои кӯмакӣ, усулҳои фабрика ё вақте ки ҳолати объект талаб намешавад, мувофиқанд.

Масалан дар Swift:

class Calculator {
    static func add(_ a: Int, _ b: Int) -> Int {
        return a + b
    }

    func multiply(_ a: Int, _ b: Int) -> Int {
        return a * b
    }
}

// Даъвати усули статикӣ бе эҷоди объект
let sum = Calculator.add(2, 3)

// Даъвати усули намуна талаб мекунад, ки объект бошад
let calc = Calculator()
let product = calc.multiply(2, 3)

Бинобар ин, барои функсияҳои бе ҳолат усули статикӣ интихоб кунед ва вақте ки ба маълумоти объект дастрасӣ лозим аст, усули класи.