မဟာဗျူဟာပုံစံများကိုအသုံးပြုသောပြောင်းလွယ်ပြင်လွယ်ပရိုဂရမ်တည်ဆောက်ပုံတည်ဆောက်ရာများကိုတည်ဆောက်ရာတွင် 0 င်လာသောပေါ်လစီအရာဝတ်ထုများသည်မျှော်လင့်ထားသည့် interface သို့မဟုတ်မိဘအမျိုးအစားများနှင့်တွေ့ဆုံရန်သေချာစေရန်လိုအပ်သည်။ PHP တွင် is_a () function သည် runtime တွင်အမျိုးအစားစိစစ်အတည်ပြုမှုကိုလုပ်ဆောင်ရန်အတွက်အကောက်ခွန်နည်းပါးသည်။
မူဝါဒပုံစံ၏အဓိကအယူအဆမှာ Algorithms သို့မဟုတ်အပြုအမူများကို algorithms သို့မဟုတ်အပြုအမူများကိုလွတ်လပ်သောမူဝါဒအတန်းများအဖြစ်သတ်မှတ်ရန်ဖြစ်သည်။ ပုံမှန်အားဖြင့်ဤပေါ်လစီသင်တန်းများသည် strategeistrinterface ကဲ့သို့သောပေါင်းစည်းသည့် interface ကိုအကောင်အထည်ဖော်ကြသည်။ ပြင်ပမှထိုးသွင်းထားသောအရာဝတ်ထုသည်အမှန်ပင် interface ၏အကောင်အထည်ဖော်မှုအတန်းကိုသေချာစေရန်အတွက်ကျွန်ုပ်တို့သည် vernation validation အတွက် _A () ကို သုံးနိုင်သည်။
ဤတွင်မူဝါဒ Mode တွင် IS_A () ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<code> interface strategyinterface {အများပြည်သူလုပ်ဆောင်ချက် execute (); } Class Strategya သည် strategegyinterface ကိုအကောင်အထည်ဖော်သည်
အများပြည်သူ function ကို execute () {)
ECHO "Strategigya Policy Musal \ n";
}
}
Class Stategyb သည် strategegyinterface ကိုအကောင်အထည်ဖော်သည်
အများပြည်သူ function ကို execute () {)
ECHO "Strategyb မူဝါဒကိုသုံးပါ";
}
}
အတန်းအခြေအနေ {
ပုဂ္ဂလိက $ မဟာဗျူဟာ;
public function setStrategy($strategy) {
if (!is_a($strategy, StrategyInterface::class)) {
throw new InvalidArgumentException("မူဝါဒအရာဝတ်ထုကိုအကောင်အထည်ဖော်ရမည် StrategyInterface ထိသိျက်နှာ");
}
$this->strategy = $strategy;
}
public function executeStrategy() {
$this->strategy->execute();
}
}
// client ကိုကုဒ်
$ Context = အခြေအနေအသစ် ();
$ Context-> setstrategy (အသစ် strategya ());
$ Context -> ExecutESTARGAGY ();
</ code>
အထက်ပါကုဒ်တွင် Context သည် Setstrategy () method () နည်းလမ်းဖြင့်မူဝါဒအရာဝတ်ထုကိုလက်ခံရရှိသည် ။ မကိုက်ညီပါကခြွင်းချက်တစ်ခုပစ်ချလိမ့်မည်။ ၎င်းသည်မှားယွင်းသောအရာဝတ်ထုများကိုမူဝါဒတစ်ခုအဖြစ်သတ်မှတ်ခြင်းမှကာကွယ်ပေးသည်။
၎င်းသည် is_a () သည် parameters နှစ်ခုကိုလက်ခံသင့်သည်။ ပထမအချက်မှာပထမ ဦး ဆုံးအနေဖြင့် check လုပ်ထားသည့်အရာဝတ်ထုသို့မဟုတ် interface အမည်ဖြစ်သည်။ ၎င်းသည်တတိယ boolean parameter သည်ကိုလည်းလက်ခံနိုင်သည်။ အကယ်. မှန်ကန် ရန်သတ်မှတ်ထားပါက၎င်းသည်အတန်းအမည်ရှိကြိုးများအကြားအမွေဆက်ခံနိုင်သည်။ သို့သော်အရာဝတ်ထုစစ်ဆေးမှုတွင်၎င်းကိုယေဘုယျအားဖြင့်ချန်လှပ်ထားသည်။
အကယ်. သင်သည်အသုံးပြုသူများကိုမူဝါဒဆိုင်ရာအတန်းအစားအမည်များမှတစ်ဆင့်မူဝါဒလူတန်းစားအမည်များမှတစ်ဆင့်သုံးစွဲသူများအားလွဲချော်စွာဖွင့်ရန်ခွင့်ပြုသည့် modular system ကိုသင်တီထွင်နေပါကအတန်းအစားအရာဝတ်ထုကိုပထမ ဦး စွာစစ်ဆေးပြီးအတည်ပြုရန် is_a () ကို သုံးနိုင်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -
<Code> $ ClassName = 'Strategyb'; $ straticyinstance = $ classname အသစ် (); လျှင် (! is_a ($ strategegystance, strategyinterface :: class))
Runtimeexception အသစ်ကိုလွှင့်ပစ်ပါ
}
$ Context-> setstrategy ($ strategateinstance);
</ code>
ဤနည်းလမ်းသည်သုံးစွဲသူများအားတရားမ 0 င်အတန်းအစားအမည်များကိုဖြတ်သန်းခြင်းနှင့်စနစ်၏လုံခြုံရေးနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေရန်ထိရောက်စွာတားဆီးနိုင်သည်။
ယေဘုယျအားဖြင့် IS_A () သည် PHP မှပေးသော Runtime အမျိုးအစားစစ်ဆေးမှုကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် developer များကိုမူဝါဒအမျိုးအစားများကိုအတည်ပြုရန်ခွင့်ပြုထားသည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် interfaces များနှင့်အလိုအလျောက်တင်ဆောင်သည့်ယန္တရားများနှင့်ပေါင်းစပ်ထားသော is_a () သည် အရာဝတ်ထု ဦး စားပေးဒီဇိုင်း၏အရေးကြီးသောအစိတ်အပိုင်းဖြစ်သောပြောင်းလွယ်ပြင်လွယ်။ ကျယ်ပြန့်သောမူဝါဒစနစ်တစ်ခုကိုတည်ဆောက်နိုင်သည်။