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