آموزش الگوهای طراحی در PHP

3 سال پیش

آموزش الگوهای طراحی در PHP

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش الگوهای طراحی در PHP خواهیم پرداخت.

نظریه الگوی طراحی مایکروسافت به این صورت می باشد: “سند الگوها را معرفی می کند و سپس آنها را در مخزن یا کاتالوگ ارائه می دهد، که برای کمک به شما در یافتن ترکیب مناسب الگوها که مشکل شما را حل می کند، سازماندهی شده است”.

نمونه هایی از الگوهای طراحی

سینگلتون

یک کلاس دارای یک نمونه است، یک نقطه دسترسی جهانی به آن ارائه می دهد ، کد زیر در مورد مفهوم تک نفره توضیح می دهد.

<?php
   class Singleton {
      public static function getInstance() {
         static $instance = null;
         
         if (null === $instance) {
            $instance = new static();
         }
         return $instance;
      }
      protected function __construct() {
      }
      
      private function __clone() {
      }
      
      private function __wakeup() {
      }
   }
   
   class SingletonChild extends Singleton {
   }
   
   $obj = Singleton::getInstance();
   var_dump($obj === Singleton::getInstance());
   
   $anotherObj = SingletonChild::getInstance();
   var_dump($anotherObj === Singleton::getInstance());
   var_dump($anotherObj === SingletonChild::getInstance()); 
?>

 

مثال فوق بر اساس ایجاد روش استاتیک ()getInstance  اجرا شده است

Factory

یک کلاس ساده شی را ایجاد می کند و می خواهید از آن شی استفاده کنید، مثال زیر در مورد الگوی طراحی Factory توضیح می دهد.

<?php
   class Automobile {
      private $bikeMake;
      private $bikeModel;
      
      public function __construct($make, $model) {
         $this->bikeMake = $make;
         $this->bikeModel = $model;
      }
      
      public function getMakeAndModel() {
         return $this->bikeMake . ' ' . $this->bikeModel;
      }
   }
   
   class AutomobileFactory {
      public static function create($make, $model) {
         return new Automobile($make, $model);
      }
   }
   
   $pulsar = AutomobileFactory::create('ktm', 'Pulsar');
   print_r($pulsar->getMakeAndModel());
   
   class Automobile {
      private $bikeMake;
      private $bikeModel;
      
      public function __construct($make, $model) {
         $this->bikeMake = $make;
         $this->bikeModel = $model;
      }
      
      public function getMakeAndModel() {
         return $this->bikeMake . ' ' . $this->bikeModel;
      }
   }
   
   class AutomobileFactory {
      public static function create($make, $model) {
         return new Automobile($make, $model);
      }
   }
   t$pulsar = AutomobileFactory::create('ktm', 'pulsar');
   
   print_r($pulsar->getMakeAndModel()); 
?>

 

مشکل اصلی الگوی Factory این است که پیچیدگی را افزایش می دهد و برای برنامه نویسان خوب قابل اعتماد نیست.

الگوی استراتژی

الگوی استراتژی یک الگوریتم خانواده می سازد و هر الگوریتم را در بر می گیرد. در اینجا هر الگوریتم باید درون خانواده قابل تغییر باشد.

<?php
   $elements = array(
      array(
         'id' => 2,
         'date' => '2011-01-01',
      ),
      array(
         'id' => 1,
         'date' => '2011-02-01'
      )
   );
   
   $collection = new ObjectCollection($elements);
   
   $collection->setComparator(new IdComparator());
   $collection->sort();
   
   echo "Sorted by ID:\n";
   print_r($collection->elements);
   
   $collection->setComparator(new DateComparator());
   $collection->sort();
   
   echo "Sorted by date:\n";
   print_r($collection->elements);
?>

 

کنترل مدل View 

View به عنوان رابط کاربری گرافیکی ، Model Acts as Back End و Control به عنوان یک آداپتور عمل می کند. در اینجا سه ​​قسمت به یکدیگر متصل هستند. این داده ها را منتقل می کند و به داده ها بین یکدیگر دسترسی پیدا می کند.

Model View Control

 

منبع.

 

 

لیست جلسات قبل آموزش PHP

  1. آموزش PHP
  2. معرفی PHP
  3. آموزش تنظیمات محیط PHP
  4. آموزش نحو PHP
  5. آموزش انواع متغیر در PHP
  6. آموزش انواع ثابت ها در PHP
  7. آموزش انواع عملگرها در PHP
  8. آموزش تصمیم گیری در PHP
  9. آموزش انواع حلقه در PHP
  10. آموزش آرایه ها در PHP
  11. آموزش رشته ها در PHP
  12. آموزش مفاهیم وب در PHP
  13. آموزش روش های  GET & POST در PHP
  14. آموزش Inclusion فایل در PHP
  15. آموزش پرونده ها و I / O در PHP
  16. آموزش توابع در PHP
  17. آموزش کوکی ها در PHP
  18. آموزش جلسات در PHP
  19. آموزش ارسال ایمیل با استفاده از PHP
  20. آموزش بارگذاری پرونده در PHP
  21. آموزش استاندارد کدگذاری در PHP
  22. آموزش متغیرهای از پیش تعریف شده در PHP
  23. آموزش عبارات منظم در PHP
  24. آموزش مدیریت خطا و استثنا در PHP
  25. آموزش اشکال زدایی در PHP
  26. آموزش تاریخ و زمان در PHP
  27. آموزش MySQL در PHP
  28. آموزش AJAX در PHP
  29. آموزش XML در PHP
  30. آموزش برنامه نویسی شی گرا در PHP
  31. آموزش PHP برای توسعه دهندگان C
  32. آموزش PHP برای توسعه دهندگان PERL
  33. آموزش معرفی فرم در PHP
  34. آموزش اعتبار سنجی در PHP
  35. آموزش فرم کامل در PHP
  36. آموزش ورود به سیستم در PHP
  37. آموزش ورود به فیس بوک در PHP
  38. آموزش ادغام PayPal در PHP
  39. آموزش ورود به MySQL در PHP
  40. آموزش جستجوی Ajax در PHP
  41. آموزش Ajax XML Parser در PHP
  42. آموزش جستجوی خودکار Ajax در PHP
  43. آموزش Ajax RSS در PHP
  44. آموزش XML در PHP
  45. آموزش XML ساده در PHP
  46. آموزش XML Get در PHP
  47. آموزش مثال تجزیه کننده SAX در PHP
  48. آموزش مثال تجزیه کننده Dom در PHP
  49. آموزش فریم ورک در PHP
  50. آموزش Core PHP در مقابل فریم ورک در PHP
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه