ארכיון עבור ספטמבר, 2008

The Value Object Pattern in PHP

התבנית בדרכ משמשת לייצוג "יישות" עם או בלי BUSINESS LOGIN, לדוגמה "לקוח", "מטבע","ארנק","תאריך"

דוגמה טובה היא "לקוח" - ללקוח יש שם פרטי, שם משפחה, טלפון, מס מזהה:

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

ייתרון עיקרי של שימוש בתבנית VALUE OBJECT הוא היכולת להשתמש בקלות באותו CLASS של קוד במערכות שונות.

הדבר העיקרי שחשוב לזכור הוא שאם אנו משנים ערך של יישות VALUE OBJECT אחת, שהישויות הרצות האחרות לא יישתנו - אם נשנה את השם של אבי לאביב, חשוב לשמור שליחזקל לא ייקרה כלום.

בשביל להמחיש, אנו נקח דוגמה פשוטה של מטבע "שקל ישראלי" וניישם אותו בתבנית VALUE OBJECT.

<?php
class shekel
{
  protected $amount;

  public function __construct($amount=0)
  {
    $this->amount=(float)$amount;
  }

 public function getamount()
 {
  return $this->amount;
 }

 public function addtoamount($shekel)
 {
   return new shekel($this->amount + $shekel->getamount());
 }

}

?>

 

הבהרות ודגשים:

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

בהצלחה!

מאת אביב רונן בPHP | אין תגובות

יום שחור בוול סטריט, 500 מילארד דולר נמחקו בעקבות בקשה לפשיטת רגל של ליהן ברדס.

אני לא מבין מה פשר המהומה, ומה כל ההתרגשות, כסף קטן..עודף..בזוקה..של פעם!

תביאו לי מוצר טוב, בקמפיין אחד אני מתקתק את זה..עזבו שטויות.. לא ככה?

מאת אביב רונן בחיים, כללי | תגובה אחת

אני מעלה את מערכת אופה אתרים לשרת בפורמט ZIP, המערכת תורגמה לעברית, והתירגום נמצא בבדיקה,

אני מזמין את כולכם לעדכן אותי בכל בעיה בתירגום כאן בבלוג, וביחד נצליח להכין גירסה מושלמת.

בהצלחה,
אביב

מאת אביב רונן באופה אתרים | אין תגובות

הפוסט הזה מוגן. צריך להזין סיסמה כדי לקרוא אותו:


מאת אביב רונן באומנות - דברים שכתבתי | צריך להזין סיסמה כדי לראות התגובות