PHP OOP - မျက်နှာပြင်များ
PHP - Interface တွေက ဘာတွေလဲ။
Interface များသည် အတန်းတစ်ခုတွင် အကောင်အထည်ဖော်သင့်သည့် နည်းလမ်းများကို သတ်မှတ်နိုင်စေပါသည်။
အင်တာဖေ့စ်များသည် မတူညီသော အတန်းများကို တူညီသောနည်းဖြင့် အသုံးပြုရန် လွယ်ကူစေသည်။ တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသောအတန်းများသည် တူညီသောအင်တာဖေ့စ်ကိုအသုံးပြုသောအခါ၊ ၎င်းကို "polymorphism" ဟုရည်ညွှန်းသည်။
interface
အင်တာဖေ့စ်များကို သော့ချက်စကားလုံး ဖြင့် ကြေညာသည် -
အထားအသို
<?php
interface InterfaceName {
public function someMethod1();
public function someMethod2($name, $color);
public function
someMethod3() : string;
}
?>
PHP - Interfaces နှင့် Abstract Classes
Interface သည် abstract class များနှင့် ဆင်တူသည်။ အင်တာဖေ့စ်များနှင့် abstract အတန်းများကြား ခြားနားချက်မှာ-
- ရှုပ်ထွေးသော အတန်းများ လုပ်နိုင်သော်လည်း အင်တာဖေ့စ်များသည် ဂုဏ်သတ္တိများ မရှိနိုင်ပါ။
- ကြားခံနည်းလမ်းအားလုံးသည် အများသူငှာ ဖြစ်ရပါမည်။
- အင်တာဖေ့စ်တစ်ခုရှိ နည်းလမ်းအားလုံးသည် စိတ္တဇဖြစ်ပြီး၊ ထို့ကြောင့် ၎င်းတို့ကို ကုဒ်ဖြင့် အကောင်အထည်မဖော်နိုင်သည့်အပြင် abstract keyword မလိုအပ်ပါ။
- Class များသည် အခြားသော class မှ တစ်ချိန်တည်းတွင် အမွေဆက်ခံနေချိန်တွင် အင်တာဖေ့စ်တစ်ခုကို အကောင်အထည်ဖော်နိုင်သည်။
PHP - Interfaces ကိုအသုံးပြုခြင်း။
အင်တာဖေ့စ်တစ်ခုကို အကောင်အထည်ဖော်ရန်၊ အတန်းတစ်ခုသည် implements
သော့ချက်စကားလုံးကို အသုံးပြုရမည်ဖြစ်သည်။
အင်တာဖေ့စ်ကိုအကောင်အထည်ဖော်သည့် အတန်း သည် အင်တာဖေ့စ်၏နည်းလမ်း အားလုံးကို အကောင်အထည်ဖော်ရမည်ဖြစ်သည် ။
ဥပမာ
<?php
interface Animal {
public function makeSound();
}
class Cat implements Animal {
public function makeSound() {
echo "Meow";
}
}
$animal = new Cat();
$animal->makeSound();
?>
အထက်ဖော်ပြပါ ဥပမာမှ၊ ကျွန်ုပ်တို့သည် တိရိစ္ဆာန်အုပ်စုတစ်စုကို စီမံခန့်ခွဲသည့် ဆော့ဖ်ဝဲကို ရေးသားလိုသည်ဆိုကြပါစို့။ တိရိစ္ဆာန်အားလုံး လုပ်နိုင်တဲ့ လုပ်ဆောင်ချက်တွေ ရှိပေမယ့် တိရစ္ဆာန်တိုင်းက သူ့နည်းသူ့ဟန်နဲ့ လုပ်ပါတယ်။
အင်တာဖေ့စ်များကို အသုံးပြု၍ တိရစ္ဆာန်အားလုံးအတွက် လုပ်ဆောင်နိုင်သော ကုဒ်အချို့ကို ကျွန်ုပ်တို့ ရေးသားနိုင်သည်-
ဥပမာ
<?php
// Interface definition
interface Animal {
public
function makeSound();
}
// Class definitions
class Cat
implements Animal {
public function makeSound() {
echo " Meow ";
}
}
class Dog implements Animal {
public function makeSound()
{
echo " Bark ";
}
}
class Mouse implements Animal {
public function makeSound() {
echo " Squeak ";
}
}
// Create a list
of animals
$cat = new Cat();
$dog = new Dog();
$mouse = new
Mouse();
$animals = array($cat, $dog, $mouse);
// Tell the animals
to make a sound
foreach($animals as $animal) {
$animal->makeSound();
}
?>
နမူနာရှင်းပြထားပါတယ်။
ကြောင်၊ ခွေးနှင့် ကြွက်များသည် Animal interface ကို အကောင်အထည်ဖော်သည့် အတန်းများအားလုံးဖြစ်ပြီး ၎င်းတို့အားလုံးသည် makeSound()
နည်းလမ်းကို အသုံးပြု၍ အသံထွက်နိုင်သည်ဟု ဆိုလိုသည်။ ထို့အတွက်ကြောင့် ကျွန်ုပ်တို့သည် တိရိစ္ဆာန်များအားလုံးကို လှည့်ပတ်ကာ တိရစ္ဆာန်တစ်မျိုးစီကို မသိသော်လည်း ၎င်းတို့အား အသံထွက်စေရန် ပြောနိုင်ပါသည်။
အင်တာဖေ့စ်သည် အဆိုပါနည်းလမ်းကို မည်သို့အကောင်အထည်ဖော်ရမည်ကို အတန်းများကို မပြောပြသောကြောင့်၊ တိရစ္ဆာန်တိုင်းသည် ၎င်း၏ကိုယ်ပိုင်နည်းလမ်းဖြင့် အသံထွက်နိုင်သည်။