Thuta Learning
ရှာဖွေရန်
AdvancedProgrammingbeginner

Protocols

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

Protocol က class, struct, enum တစ်ခုက ဘယ် property/method တွေရှိရမလဲဆိုတဲ့ contract ပါ။ Swift development မှာ protocol-oriented programming ကိုအများကြီးသုံးကြပါတယ်။

Protocol သုံးခြင်းက concrete type တစ်ခုတည်းနဲ့မချိတ်ဘဲ behavior ပေါ်မူတည်ပြီး code ရေးနိုင်စေပါတယ်။ Testing, dependency injection, reusable components တွေမှာအလွန်အသုံးဝင်ပါတယ်။

swift
protocol Payable {
    var amount: Double { get }
    func pay()
}

struct CreditCardPayment: Payable {
    let amount: Double

    func pay() {
        print("Paid $\(amount) with credit card")
    }
}

let payment = CreditCardPayment(amount: 29.99)
payment.pay()

Payable protocol က amount property နဲ့ pay() method ရှိရမယ်လို့သတ်မှတ်ပါတယ်။ CreditCardPayment struct က အဲဒီ contract ကိုလိုက်နာထားပါတယ်။

You should see
Paid $29.99 with credit card

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Protocol requirement ထဲက method/property တစ်ခုမရေးမိရင် conform မဖြစ်ဘဲ compile error ပြပါမယ်။
Protocols | Thuta Learning