1. Corak kilang: Asingkan penciptaan objek dan logik perniagaan, dan cipta objek jenis tertentu melalui kelas kilang. 2. Corak pemerhati: Membenarkan objek subjek memberitahu objek pemerhati tentang perubahan keadaan mereka, mencapai gandingan longgar dan corak pemerhati.
Analisis Kes Praktikal Corak Reka Bentuk PHP
Kata Pengantar
Corak reka bentuk ialah penyelesaian matang kepada masalah reka bentuk perisian biasa. Mereka membantu mencipta kod yang boleh digunakan semula, boleh diselenggara dan boleh diperluaskan. Dalam artikel ini, kami akan meneroka beberapa corak reka bentuk yang paling biasa digunakan dalam PHP dan memberikan contoh praktikal.
Corak Kilang
Cara terbaik untuk mencipta objek ialah memisahkan proses instantiasi daripada logik perniagaan. Corak kilang menggunakan kelas kilang pusat untuk menentukan jenis objek yang hendak dibuat.
Kes Praktikal: Mencipta Kilang Bentuk
interface Shape { public function draw(); } class Square implements Shape { public function draw() { echo "Drawing a square.\n"; } } class Circle implements Shape { public function draw() { echo "Drawing a circle.\n"; } } class ShapeFactory { public static function createShape(string $type): Shape { switch ($type) { case "square": return new Square(); case "circle": return new Circle(); default: throw new Exception("Invalid shape type."); } } } // Usage $factory = new ShapeFactory(); $square = $factory->createShape("square"); $square->draw(); // 输出:Drawing a square.
Corak Pemerhati
Corak Pemerhati membenarkan satu objek (subjek) untuk memberitahu objek lain (pemerhati) tentang perubahan keadaan mereka.
Kes Praktikal: Mencipta Sistem Blog
interface Observer { public function update(Subject $subject); } class Subject { protected $observers = []; public function attach(Observer $observer) { $this->observers[] = $observer; } public function detach(Observer $observer) { $key = array_search($observer, $this->observers); if ($key !== false) { unset($this->observers[$key]); } } public function notify() { foreach ($this->observers as $observer) { $observer->update($this); } } } class Post extends Subject { private $title; private $body; // ... Post related methods public function publish() { $this->notify(); } } class EmailObserver implements Observer { public function update(Subject $subject) { // Send an email notification for the new post. } } class PushObserver implements Observer { public function update(Subject $subject) { // Send a push notification for the new post. } } // Usage $post = new Post(); $observer1 = new EmailObserver(); $observer2 = new PushObserver(); $post->attach($observer1); $post->attach($observer2); $post->publish(); // Sends email and push notifications for the new post.
Ringkasan
Kami meneroka corak reka bentuk kilang dan pemerhati melalui contoh praktikal, menggambarkan bagaimana corak reka bentuk boleh meningkatkan kebolehgunaan semula kod, kebolehselenggaraan dan jantina berskala.
Atas ialah kandungan terperinci Analisis kes praktikal corak reka bentuk PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!