Corak reka bentuk menyediakan penyelesaian yang terbukti kepada reka bentuk perisian, menyelesaikan masalah pengaturcaraan biasa. Artikel ini melihat secara mendalam corak reka bentuk biasa dalam PHP dan menerangkannya melalui kes praktikal, meliputi corak tunggal, corak kaedah kilang dan corak pemerhati.
Penjelasan praktikal terperinci tentang corak reka bentuk PHP
Corak reka bentuk menyediakan satu set penyelesaian terbukti untuk reka bentuk perisian untuk menyelesaikan masalah pengaturcaraan biasa. Artikel ini akan menyelidiki corak reka bentuk yang biasa digunakan dalam PHP dan menggambarkannya melalui kes praktikal.
Corak singleton
Corak singleton memastikan bahawa kelas dibuat seketika sahaja. Ini berguna untuk sumber global atau pengurus konfigurasi.
class Database { private static ?\PDO $instance = null; private function __construct() {} public static function getInstance(): \PDO { if (self::$instance === null) { self::$instance = new \PDO('mysql:host=localhost;dbname=my_db', 'user', 'password'); } return self::$instance; } } // 使用 Singleton $db1 = Database::getInstance(); $db2 = Database::getInstance(); // 两个变量指向同一个 PDO 对象 var_dump($db1 === $db2); // true
Corak Kaedah Kilang
Corak Kaedah Kilang mentakrifkan antara muka yang mencipta objek tetapi membenarkan subkelas menukar proses penciptaan. Ini menyediakan cara yang fleksibel untuk memisahkan logik penciptaan dan kelas produk.
interface Shape { public function draw(): void; } class Circle implements Shape { public function draw(): void { echo 'Drawing a circle.' . PHP_EOL; } } class Square implements Shape { public function draw(): void { echo 'Drawing a square.' . PHP_EOL; } } class ShapeFactory { public static function createShape(string $type): Shape { switch ($type) { case 'circle': return new Circle(); case 'square': return new Square(); default: throw new InvalidArgumentException('Invalid shape type.'); } } } // 使用工厂方法 $circle = ShapeFactory::createShape('circle'); $square = ShapeFactory::createShape('square'); $circle->draw(); // Drawing a circle. $square->draw(); // Drawing a square.
Corak Pemerhati
Corak Pemerhati mentakrifkan hubungan pergantungan satu-ke-banyak, di mana satu objek (subjek) boleh memberitahu berbilang objek (pemerhati) tentang perubahan keadaan.
rreeeeAtas ialah kandungan terperinci Penjelasan terperinci tentang corak reka bentuk PHP dalam amalan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!