PHP OOP တွင် Interface အတွင်း Constructor ကြေညာခြင်း

Interface အတွင်း၌လည်း class constructor ကို ကြေညာ၍ရသည်။ ဥပမာတစ်ခုဖြင့် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့သည် Rectangle class တစ်ခုဖန်တီးရန် ဆုံးဖြတ်ပြီး ၎င်းအတွင်း ဧရိယာ၊ ပတ်လည်အနား တွက်ရန် method များ နှင့် parameter နှစ်ခုလက်ခံသော constructor တစ်ခု ထည့်သွင်းမည်။ ယခု ကျွန်ုပ်တို့၏ class ကို interface ဖြင့် ဖော်ပြကြည့်ပါမည်။

iRectangle.php<?php
  interface iRectangle
  {
    public function __construct($a, $b); // parameter နှစ်ခုပါသော constructor
    public function getSquare();
    public function getPerimeter();
  }
?>

ယခု ကျွန်ုပ်တို့၏ interface iRectangle ကို အကောင်အထည်ဖော်ကြည့်ပါမည်။

Rectangle.php<?php
  class Rectangle implements iRectangle
  {
    private $a;
    private $b;
    
    public function __construct($a, $b)
    {
      $this->a = $a;
      $this->b = $b;
    }
    
    public function getSquare()
    {
      return $this->a * $this->b;
    }
    
    public function getPerimeter()
    {
      return 2 * ($this->a + $this->b);
    }
  }
?>

Interface အတွင်း constructor ကြေညာခြင်းက ကျွန်ုပ်တို့ကို ဘာအကျိုးကျေးဇူးပေးသနည်း။ ပထမဦးစွာ၊ class အတွင်း constructor ကို အကောင်အထည်ဖော်ရန် ကျွန်ုပ်တို့ မေ့သွားမည်မဟုတ်ပါ။ ဒုတိယအနေဖြင့်၊ interface သည် class constructor သည် parameter နှစ်ခုသာလက်ခံရမည်ဟု ပွင့်လင်းစွာ ဖော်ပြပေးသည်။ ဤသည်လည်း မတော်တဆအမှားများမှ ကာကွယ်ပေးနိုင်သည်။

ကျွန်ုပ်တို့သည် constructor ကို interface Figure ထဲသို့ ထည့်မည့်အစား သီးသန့် interface iRectangle တစ်ခုကို မည်သို့ဖန်တီးခဲ့သနည်း။ အကြောင်းမှာ ပုံသဏ္ဍာန်အားလုံးတွင် ဘေးဘက်အရေအတွက် မတူညီကြသဖြင့် constructor အတွင်းရှိ parameter အရေအတွက်လည်း ကွဲပြားသောကြောင့်ဖြစ်သည်။ ထို့ကြောင့် ကျွန်ုပ်တို့သည် ထောင့်မှန်စတုဂံများအတွက် တိကျသော interface တစ်ခုကို သီးသန့်ဖန်တီးခဲ့ရခြင်းဖြစ်သည်။

Задание 1

�ုဗပုံသဏ္ဍာန်ကို ဖော်ပြမည့် iCube interface တစ်ခုကို ဖန်တီးပါ။ သင့် interface သည် ကုဗ၏အနားကို parameter အဖြစ်လက်ခံသော constructor နှင့် ကုဗ၏ထုထည်နှင့် မျက်နှာပြင်ဧရိယာရရှိရန် method များကို ဖော်ပြရမည်။

Задание 2

iCube interface ကို အကောင်အထည်ဖော်သော Cube class ကို ဖန်တီးပါ။

Задание 3

အသုံးပြုသူကို ဖော်ပြမည့် iUser interface တစ်ခုကို ဖန်တီးပါ။ အသုံးပြုသူတွင် အမည်နှင့် အသက်ရှိပြီး ဤအချက်အလက်များကို constructor ၏ parameter အဖြစ် လက်ခံရမည်ဟု ယူဆပါ။ သင့် interface သည် အသုံးပြုသူတွင် အမည်နှင့် အသက်အတွက် getter method များ (setter method များမဟုတ်) ရှိရမည်ဟု လည်း သတ်မှတ်ပေးပါ။

Задание 4

iUser interface ကို အကောင်အထည်ဖော်သော User class ကို ဖန်တီးပါ။