Rumah > pembangunan bahagian belakang > tutorial php > Corak reka bentuk biasa untuk pengaturcaraan berorientasikan objek menggunakan PHP

Corak reka bentuk biasa untuk pengaturcaraan berorientasikan objek menggunakan PHP

PHPz
Lepaskan: 2023-06-22 11:36:02
asal
783 orang telah melayarinya

Sebagai bahasa pengaturcaraan yang digunakan secara meluas, PHP boleh digunakan dengan mudah untuk melaksanakan Pengaturcaraan Berorientasikan Objek (OOP). Apabila membangun menggunakan OOP, seorang pengaturcara perlu mempunyai pemahaman yang mendalam tentang konsep corak reka bentuk. Corak reka bentuk merujuk kepada penyelesaian umum kepada jenis masalah tertentu dalam keadaan tertentu. Jadi artikel ini akan memperkenalkan beberapa corak reka bentuk biasa yang dilaksanakan menggunakan PHP.

  1. Corak Tunggal

Dalam corak tunggal, kelas hanya mempunyai satu tika. Apabila penciptaan kejadian berulang dalam beberapa kes akan menyebabkan penggunaan prestasi program, dan setiap kejadian boleh menggunakan keadaan berbeza di bawah keadaan serentak, maka mod tunggal perlu digunakan.

Berikut ialah contoh kod untuk corak tunggal:

class Singleton {
    private static $instance;

    private function __construct() {}

    public static function getInstance() {
        if (!isset(self::$instance)) {
            self::$instance = new singleton();
        }
        return self::$instance;
    }
}
Salin selepas log masuk

Dalam kod di atas, fungsi getInstance akan mencipta satu tunggal dan memastikan bahawa hanya terdapat satu contoh kelas dalam permohonan itu.

  1. Corak Kilang

Corak kilang merangkumi proses penciptaan objek dalam kelas kilang, yang memisahkan kelas kilang daripada kelas konkrit dan mengurangkan tahap gandingan. Dalam corak kilang, kelas kilang boleh mencipta contoh berbilang kategori.

Berikut ialah contoh kod corak kilang:

interface Shape {
    public function draw();
}

class Circle implements Shape {
    public function draw() {
        echo "Circle
";
    }
}

class Rectangle implements Shape {
    public function draw() {
        echo "Rectangle
";
    }
}

class ShapeFactory {
    public function createShape($type) {
        if ($type == 'circle') {
            return new Circle();
        } else if ($type == 'rectangle') {
            return new Rectangle();
        }
    }
}

$shapeFactory = new ShapeFactory();
$circle = $shapeFactory->createShape('circle');
$rectangle = $shapeFactory->createShape('rectangle');

$circle->draw(); //output: Circle
$rectangle->draw(); //output: Rectangle
Salin selepas log masuk
  1. Corak Pemerhati (Corak Pemerhati)

Corak pemerhati ialah apabila objek berada diubah suai Corak yang memberitahu objek lain secara automatik. Dalam corak pemerhati, objek yang diperhatikan boleh mempunyai berbilang pemerhati Apabila keadaan berubah, pemerhati ini akan menerima pemberitahuan dan mengemas kini secara automatik.

Berikut ialah contoh kod untuk corak pemerhati:

interface Subject {
    public function attach(Observer $observer);
    public function detach(Observer $observer);
    public function notify();
}

class ConcreteSubject implements Subject {
    private $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();
        }
    }
}

interface Observer {
    public function update();
}

class ConcreteObserver implements Observer {
    public function update() {
        echo "Updated!
";
    }
}

$subject = new ConcreteSubject();
$observer1 = new ConcreteObserver();
$observer2 = new ConcreteObserver();

$subject->attach($observer1);
$subject->attach($observer2);

$subject->notify(); //output: Updated! Updated!

$subject->detach($observer2);

$subject->notify(); //output: Updated!
Salin selepas log masuk

Dalam kod di atas, Subject dan Observer ialah kedua-dua antara muka, terutamanya digunakan untuk membetulkan struktur corak pemerhati , ConcreteSubject ialah kelas konkrit untuk diperhatikan, dan ConcreteObserver ialah kelas pemerhati konkrit.

Dalam PHP, corak reka bentuk boleh digunakan dengan sangat fleksibel. Tiga corak reka bentuk di atas hanyalah beberapa contoh corak reka bentuk biasa yang dilaksanakan menggunakan PHP Pengaturcara perlu memahami secara mendalam konsep corak reka bentuk dalam pembangunan sebenar, supaya dapat memilih corak yang sesuai dan mengaplikasikannya pada program untuk menyelesaikan masalah sebenar.

Atas ialah kandungan terperinci Corak reka bentuk biasa untuk pengaturcaraan berorientasikan objek menggunakan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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