ממשק php לעומת מחלקה אבסטרקטית

מהו שיעור מופשט ב-PHP?
תכונות ב-PHP

בשיעור נרחב זה, נעמיק במורכבות של פונקציונליות הממשק של PHP. מתוך בפוסט זה, נבחן את ההבדלים והדמיון בין שני מושגי PHP חיוניים: ממשקים לעומת מחלקות מופשטות. נבחן את התחביר והמקרי שימוש עבור כל אחד מהם, כמו גם את היתרונות והחסרונות של שימוש בממשקים ומחלקות מופשטות בקוד שלך. בסיום מפגש זה, תדע מתי להשתמש בממשקי PHP ומתי להשתמש בשיעורים מופשטים, כמו גם כיצד ליישם אותם בפרויקטי התכנות שלך.

מהו ממשק ב-OOP?

  • ממשק הוא מחלקה המכילה רק שיטות מופשטות.
  • על ידי שימוש במחלקת הממשק, אנו יכולים לציין אילו שיטות מחלקה צריכה ליישם שמרחיבות את הממשק.
  • בניגוד למחלקה אבסטרקטית, אינך צריך לכתוב תקצירים עם המתודות מכיוון שבממשק יכולות להיות רק מתודות מופשטות.
  • ממשק מילת מפתח משמשת להכרזה על מחלקת ממשק. תסתכל על התחביר הבא של מחלקת ממשק ב-PHP.
<?php
interface InterfaceName {
  public function someMethod1();
  public function someMethod2($name, $color);
  public function someMethod3() : string;
}
?>

למרות שמחלקות וממשקים מופשטים די דומים, הם שונים מבחינה לוגית זה מזה.

ההבדל בין מחלקות ממשק ומופשטות ב-PHP

כיתת ממשקכיתה מופשטת
לא יכול להכיל מאפייניםיכול להכיל מאפיינים
כל השיטות מופשטות ולא נדרשת מילת מפתח מופשטת יחד עם שיטות.Con מכיל שיטות מופשטות וגם לא מופשטות. דרושה מילת מפתח מופשטת כדי להכריז על שיטה מופשטת.
מחלקה יכולה ליישם ממשק יחד עם ירושה ממחלקה אחרת. זה אומר שכיתת ילד יכולה ליישם ממשק בו-זמנית.כיתת ילד (שהתקבלה בירושה מכיתה אחרת), אינה יכולה ליישם את המחלקה המופשטת.
כל השיטות חייבות להיות ציבוריות ביחס לשינויי גישה.שיטות יכולות להיות ציבוריות או מוגנות ביחס לשינויי גישה.
ממשקים לעומת שיעורים מופשטים

דוגמה לממשק ב-PHP

ממשק מילת מפתח משמשת להכרזה על ממשק ב-PHP. עיין ביישום הבא של הממשק ב-PHP.

<?php
interface Unit {
  public function standard_unit();
}

class Weight implements Unit {
  public function standard_unit() {
    echo "Kg";
  }
}

$weight= new Weight();
$weight->standard_unit();
?>
  • בדוגמה לעיל. אנו יוצרים יחידת מחלקת ממשק המכילה שיטה standard_unit.
  • ואז אנחנו יוצרים מחלקה נוספת מִשׁקָל שמיישם את יחידה ממשק ומגדיר בו את שיטת standard_unit.
  • מהדוגמה לעיל, אנו יכולים לראות שהמחלקה שמשתמשת בממשק יכולה לעקוף את השיטה שלה ויכולה להשתמש בה בדרכה שלה. נניח שיש לנו אורך מחלקה אחר, הוא יכול להשתמש בשיטת standard_unit בדרכו.
  • נוכל לכתוב את ההיגיון שיעבוד עבור כל הגדלים הפיזיקליים שיש להם יחידות SI. תסתכל על הדוגמה הבאה.
<?php
// Interface definition
interface Unit {
  public function standard_unit();
}

// Class definitions
class Weight implements Unit {
  public function makeSound() {
    echo " kg";
  }
}

class Length implements Unit {
  public function standard_unit() {
    echo " meter";
  }
}

class Temperature implements Unit {
  public function standard_unit() {
    echo " celcius";
  }
}

// Create a list of Physical Quanitites
$weight = new Weight();
$length = new Length();
$temperature = new Temperature();
$quantities= array($weight, $length, $temperature);

// Tell the quantities to use its standard unit
foreach($quantities as $quantities) {
  $quantitiy->standard_unit();
}
?>
  • בדוגמה שלמעלה, אנו יוצרים מחלקות דומות כמו בדוגמה הקודמת.
  • מחלקות המשקל, האורך והטמפרטורה מיישמות את אותו ממשק ויכולות להשתמש בשיטת standard_unit בדרכה. אז, אנו יוצרים מערך של האובייקטים של המחלקות הללו ומעבירים אותם בלולאה אחד אחד כדי לחלק את שיטת standard_unit.

הפניה לתיעוד הרשמי של ממשק PHP 8.

מהו שיעור מופשט ב-PHP?
תכונות ב-PHP
en English
X
גלול למעלה