PHP - Pola Desain
Teori pola desain Microsoft adalah, "Dokumen memperkenalkan pola dan kemudian menyajikannya dalam repositori, atau katalog, yang diatur untuk membantu Anda menemukan kombinasi yang tepat dari pola yang memecahkan masalah Anda".
Contoh pola Desain
Singleton
Kelas A memiliki satu contoh, Ini menyediakan titik akses global untuk itu, Kode berikut akan menjelaskan tentang konsep tunggal.
<?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());
?>
Contoh di atas yang diimplementasikan berdasarkan pembuatan metode statis adalah getInstance ()
Pabrik
A Class Simple Membuat objek dan Anda ingin menggunakan objek tersebut, Contoh berikut akan menjelaskan tentang pola desain pabrik.
<?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());
?>
Kesulitan utama dengan pola pabrik adalah akan meningkatkan kompleksitas dan tidak dapat diandalkan untuk pemrogram yang baik.
Pola strategi
Pola strategi membuat algoritma keluarga dan merangkum setiap algoritma. Di sini setiap algoritme harus dapat diubah-ubah dalam keluarga.
<?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);
?>
Kontrol Tampilan Model
Tampilan berfungsi sebagai GUI, Model Bertindak sebagai Ujung Belakang dan Kontrol bertindak sebagai adaptor. Di sini tiga bagian tersebut saling berhubungan satu sama lain. Ini akan meneruskan data dan mengakses data antara satu sama lain.