Analisis kes praktikal corak reka bentuk PHP

WBOY
Lepaskan: 2024-05-08 08:09:02
asal
838 orang telah melayarinya

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.

PHP 设计模式实战案例解析

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.
Salin selepas log masuk

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.
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan