မဟာဗျူဟာပုံစံသည် algorithms စီးရီးကို သတ်မှတ်. algorithm တစ်ခုချင်းစီကို algorithm တစ်ခုချင်းစီကို encapsulates တစ်ခုစီသည် algorithm တစ်ခုချင်းစီကိုတစ်ခုချင်းစီကို encapsulate လုပ်သည်။ ဤအချက်သည် algorithm ပြောင်းလဲမှုများသည် algorithm ကို သုံး. client ကိုသက်ရောက်ခြင်းမရှိပါ။
ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် developer များကပြ problem နာကိုဖြေရှင်းရန်ကွဲပြားခြားနားသောအခြေအနေများအရကွဲပြားခြားနားသော algorithms ကိုရွေးချယ်ရန်လိုအပ်သည်။ အကယ်. သင်သည် algorithms အားလုံးကိုကုဒ်ထဲ၌တိုက်ရိုက်ရေးပါက၎င်းကို Code ကိုရှုပ်ထွေးပြီးထိန်းသိမ်းရန်ခက်ခဲနိုင်သည်။ မူဝါဒပုံစံသည် algorithm ကို 0 န်ဆောင်မှုခံယူသူနှင့်မတူသောမူဝါဒများနှင့်မတူကွဲပြားသောမူဝါဒများအဖြစ်ရေးဆွဲခြင်းဖြင့် Code ၏ထိန်းသိမ်းနိုင်မှုနှင့်ပမာဏကိုပိုမိုသက်သာစေသည်။
မဟာဗျူဟာပုံစံကိုများသောအားဖြင့်အဓိကအခန်းကဏ် three ဖြင့်ဖွဲ့စည်းထားသည်။
သင်သည် e-commerce ပလက်ဖောင်းတစ်ခုတည်ဆောက်နေကြောင်းနှင့်အသင်း 0 င်အဆင့်အပေါ် အခြေခံ. ထုတ်ကုန်၏လျှော့စျေးစျေးနှုန်းကိုတွက်ချက်ရန်လိုအပ်သည်ဆိုပါစို့။ ကွဲပြားခြားနားသောအသင်းဝင်အဆင့်ဆင့်ကွဲပြားခြားနားသောလျှော့စျေး algorithms နှင့်ကိုက်ညီ။
ပထမ ဦး စွာကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောအသင်း 0 င်အဆင့်အတွက်အထူးလျှော့စျေး algorithms ကိုကိုယ်စားပြုသောစိတ်တဇနည်းဗျူဟာအတန်းကိုသတ်မှတ်ရန်လိုအပ်သည်။
interface DiscountStrategy {
public function calculate($price);
}
ထို့နောက်ကွဲပြားခြားနားသောလျှော့စျေး algorithms ကိုအကောင်အထည်ဖော်ရန်တိကျသောမဟာဗျူဟာအတန်းများကိုသတ်မှတ်ပါ။ ဥပမာအားဖြင့်, သာမန်အသင်းဝင်များနှင့် VIP အဖွဲ့ 0 င်များအတွက်လျှော့စျေး algorithm:
class RegularMemberDiscount implements DiscountStrategy {
public function calculate($price) {
// သာမန်အဖွဲ့ဝင်များအတွက်အထူးလျှော့စျေးများ၏တွက်ချက်မှု
$discountedPrice = $price * 0.9;
echo "သာမန်အဖွဲ့ဝင်များအတွက်စျေးနှုန်းလျှော့စျေး:" . $discountedPrice . "\n";
}
}
class VIPMemberDiscount implements DiscountStrategy {
public function calculate($price) {
// VIPအသင်းဝင်များလျှော့တွက်ချက်ခြင်း
$discountedPrice = $price * 0.8;
echo "VIPအဖွဲ့ဝင်များလျှော့စျေး:" . $discountedPrice . "\n";
}
}
ထို့နောက်ကျွန်ုပ်တို့သည်လက်ရှိမူဝါဒအရာဝတ်ထုအပေါ် အခြေခံ. အထူးလျှော့စျေးတွက်ချက်ရန်ပတ်ဝန်းကျင်အတန်းတစ်ခုကိုသတ်မှတ်ရန်လိုအပ်သည်။
class DiscountCalculator {
private $strategy;
public function __construct(DiscountStrategy $strategy) {
$this->strategy = $strategy;
}
public function calculateDiscount($price) {
$this->strategy->calculate($price);
}
}
မဟာဗျူဟာပုံစံကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောအသင်း 0 င်အဆင့်အပေါ် အခြေခံ. လျှော့စျေးစျေးနှုန်းများကိုအလွယ်တကူတွက်ချက်နိုင်သည်။
$price = 100.0;
$regularMemberDiscount = new RegularMemberDiscount();
$vipMemberDiscount = new VIPMemberDiscount();
$calculator = new DiscountCalculator($regularMemberDiscount);
$calculator->calculateDiscount($price);
$calculator = new DiscountCalculator($vipMemberDiscount);
$calculator->calculateDiscount($price);
မဟာဗျူဟာမော်ဒယ်သည်အသုံးများသောဒီဇိုင်းပုံစံဖြစ်သည်, အထူးသဖြင့် algorithms ကွဲပြားခြားနားသောအခြေအနေများအရပြောင်းလွယ်ပြင်လွယ်ရှိရန်လိုအပ်သည်။ မူဝါဒပုံစံများဖြင့် algorithms သည်လွတ်လပ်သောမူဝါဒအတန်းများသို့ 0 င်ရောက်နိုင်သည်။
ဤဆောင်းပါးတွင်ဥပမာတွင်စိတ်တဇမူဝါဒအတန်းများနှင့်တိကျသောမူဝါဒအတန်းများဒီဇိုင်းမှတစ်ဆင့် client ကို client မှ algorithm ကိုအောင်မြင်စွာချွေတာစေသည်။ ဤနည်းအားဖြင့်အသင်း 0 င်အဆင့်အသစ်များကိုထည့်သွင်းခြင်းသို့မဟုတ်အနာဂတ်တွင်လျှော့စျေးများကိုပြုပြင်သည့်အခါ 0 န်ဆောင်မှုခံယူထားသော algorithms အပေါ်အကျိုးသက်ရောက်မှုကိုရှောင်ရှားနိုင်ပြီးကုဒ်၏ပြန်လည်သုံးသပ်ခြင်းနှင့်ပမာဏကိုတိုးတက်အောင်လုပ်နိုင်သည်။