PHP တွင် OOP အသုံးပြုသော အယ်ဘ်စထရက်အသုံးအနှုန်းများ

အယ်ဘ်စထရက်ကလပ်စ်များတွင် အယ်ဘ်စထရက်အသုံးအနှုန်းများ ပါဝင်နိုင်ပါသည်။ ထိုသို့သောအသုံးအနှုန်းများသည် အကောင်အထည်ဖော်မှုမရှိသင့်ဘဲ၊ ၎င်းတို့၏ဆင်းသက်လာသောကလပ်စ်များတွင် ထိုသို့သောအသုံးအနှုန်းများ ရှိရမည်ဟု ဖော်ပြရန်အတွက် လိုအပ်ပါသည်။ ထိုအသုံးအနှုန်းများ၏ အကောင်အထည်ဖော်မှုမှာမူ ဆင်းသက်လာသောကလပ်စ်များ၏ တာဝန်ဖြစ်သည်။

အသုံးအနှုန်းတစ်ခုအား အယ်ဘ်စထရက်အဖြစ် ကြေညာရန်၊ ၎င်းအား ကြေညာသောအခါတွင် abstract ဟူသော သော့ချက်စကားလုံးကို ရေးသားရပါမည်။

လက်တွေ့စမ်းကြည့်ရအောင်။ User ကလပ်စ်၏ ဆင်းသက်လာသမျှသော ကလပ်စ်အားလုံးတွင် increaseRevenue အသုံးအနှုန်းရှိရမည်ဟု ယူဆပါစို့။

ဤအသုံးအနှုန်းသည် လက်ရှိအသုံးပြုသူ၏ဝင်ငွေကို ယူပြီး၊ ပါရာမီတာအဖြစ်ပေးပို့သော တန်ဖိုးတစ်ခုခုဖြင့် ၎င်းကိုတိုးမြှင့်ပေးရမည်။

User ကလပ်စ်ကိုယ်တိုင်မှာ ဆင်းသက်လာသောကလပ်စ်မည်သည့်ဝင်ငွေကိုရရှိမည်ကို မသိပါ - အဘယ်ကြောင့်ဆိုသော် လုပ်သားအတွက် ၎င်းမှာ လစာဖြစ်ပြီး၊ ကျောင်းသားအတွက်မူ ကျောင်းစရိတ်ဖြစ်သောကြောင့်ဖြစ်သည်။ ထို့ကြောင့် ဆင်းသက်လာသောကလပ်စ်တစ်ခုစီသည် ဤအသုံးအနှုန်းကို မိမိနည်းလမ်းအလိုက် အကောင်အထည်ဖော်ပါလိမ့်မည်။

ဤနေရာတွင်အဓိကအချက်မှာ၊ User ကလပ်စ်၏အယ်ဘ်စထရက်အသုံးအနှုန်းသည် ပရိုဂရမ်မာကို ဆင်းသက်လာသောကလပ်စ်များတွင် ဤအသုံးအနှုန်းကို အကောင်အထည်ဖော်ရန် ဖိအားပေးပြီး၊ သို့မဟုတ်ပါက PHP မှ အမှားတစ်ခုကို ပြသပေးမည်ဖြစ်သည်။ ဤနည်းအားဖြင့် သင့်အနေဖြင့် သို့မဟုတ် သင်၏ကုဒ်နှင့်အလုပ်လုပ်သော အခြားပရိုဂရမ်မာသည် ဆင်းသက်လာသောကလပ်စ်တွင် လိုအပ်သောအသုံးအနှုန်းကို အကောင်အထည်ဖော်ရန် ဘယ်သောအခါမှ မေ့လျော့နိုင်မည်မဟုတ်ပါ။

ထို့ကြောင့် လက်တွေ့စမ်းကြည့်ရအောင်။ User ကလပ်စ်ထဲသို့ အယ်ဘ်စထရက်အသုံးအနှုန်း increaseRevenue ကို ထည့်ကြည့်ပါမည်။

User.php<?php
  abstract class User
  {
    private $name;
    
    public function getName()
    {
      return $this->name;
    }
    
    public function setName($name)
    {
      $this->name = $name;
    }
    
    // ကိုယ်ထည်မရှိသော အယ်ဘ်စထရက်အသုံးအနှုန်း
    abstract public function increaseRevenue($value);
  }
?>

ကျွန်ုပ်တို့၏ Employee ကလပ်စ်အား ပြောင်းလဲမှုမရှိဘဲ ထားခဲ့ပါစို့။ ဤအခြေအနေတွင်၊ Employee ကလပ်စ်၏အရာဝတ္ထုကို မဖန်တီးရသော်လည်း၊ ကျွန်ုပ်တို့၏ကလပ်စ်များကို သတ်မှတ်ထားသောကုဒ်ကို စတင်လိုက်သည်နှင့်တပြိုင်နက် - PHP သည် အမှားတစ်ခုကို ပြသပေးပါလိမ့်မည်။

ယခု Employee ကလပ်စ်ထဲတွင် increaseRevenue အသုံးအနှုန်း၏ အကောင်အထည်ဖော်မှုကို ရေးကြည့်ပါမည်။

Employee.php<?php
  class Employee extends User
  {
    private $salary;
    
    public function getSalary()
    {
      return $this->salary;
    }
    
    public function setSalary($salary)
    {
      $this->salary = $salary;
    }
    
    // အသုံးအနှုန်း၏ အကောင်အထည်ဖော်မှုကို ရေးပါမည်
    public function increaseRevenue($value)
    {
      $this->salary = $this->salary + $value;
    }
  }
?>

ကျွန်ုပ်တို့၏ကလပ်စ်၏လုပ်ဆောင်ချက်ကို စစ်ဆေးကြည့်ပါမည်။

index.php<?php
  $employee = new Employee;
  $employee->setName('john');
  $employee->setSalary(1000);
  $employee->increaseRevenue(100);
  
  echo $employee->getSalary();
?>

increaseRevenue အသုံးအနှုန်းကို Student ကလပ်စ်ထဲတွင်လည်း အကောင်အထည်ဖော်ပါမည်။ သို့သော် ယခုအခါ ကျွန်ုပ်တို့၏အသုံးအနှုန်းသည် ကျောင်းစရိတ်ကို တိုးမြှင့်ပေးပါလိမ့်မည်။

Student.php<?php
  class Student extends User
  {
    private $scholarship; // ကျောင်းစရိတ်
    
    public function getScholarship()
    {
      return $this->scholarship;
    }
    
    public function setScholarship($scholarship)
    {
      $this->scholarship = $scholarship;
    }
    
    // အသုံးအနှုန်းသည် ကျောင်းစရိတ်ကို တိုးမြှင့်ပေးသည်
    public function increaseRevenue($value)
    {
      $this->scholarship = $this->scholarship + $value;
    }
  }
?>
Задание 1

သင်၏ User ကလပ်စ်ထဲသို့ increaseRevenue အယ်ဘ်စထရက်အသုံးအနှုန်းအတိုင်း ထည့်သွင်းပါ။ ဤအသုံးအနှုန်း၏ အကောင်အထည်ဖော်မှုကို Employee နှင့် Student ကလပ်စ်များတွင် ရေးသားပါ။

Задание 2

Figure ကလပ်စ်ထဲတွင် ရုပ်ပုံ၏ဧရိယာနှင့် ပတ်လည်အနားကို ရယူရန် အယ်ဘ်စထရက်အသုံးအနှုန်းများ ပြုလုပ်ပါ။