Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Apakah corak reka bentuk dalam PHP7.0?

Apakah corak reka bentuk dalam PHP7.0?

王林
王林asal
2023-05-26 09:21:111013semak imbas

Dengan perkembangan teknologi yang berterusan, corak reka bentuk menjadi semakin penting dalam pembangunan perisian. Sebagai versi PHP terkini, PHP7.0 juga menyepadukan banyak corak reka bentuk. Dalam artikel ini, kami akan meneroka corak reka bentuk dalam PHP7.0 untuk membantu pengaturcara PHP memahami dan menggunakan corak ini dengan lebih baik.

  1. Corak singleton

Corak singleton ialah corak ciptaan yang memastikan bahawa kelas hanya mempunyai satu tika dan menyediakan titik akses global. Dalam PHP7.0, anda boleh menggunakan kaedah __construct dan kaedah statik untuk melaksanakan corak ini. Berikut ialah contoh:

class Singleton
{
    private static $instance = null;
    
    private function __construct() {}
    
    public static function getInstance()
    {
        if (null === static::$instance) {
            static::$instance = new static();
        }
        
        return static::$instance;
    }
}

Dalam kod di atas, kaedah getInstance() akan mengembalikan satu-satunya tika kelas Singleton.

  1. Corak kilang

Corak kilang ialah corak ciptaan lain, yang menyediakan antara muka untuk penciptaan objek, tetapi hanya mendedahkan logik instantiasi objek. Dalam PHP7.0, anda boleh menggunakan antara muka dan kelas abstrak untuk melaksanakan corak ini. Berikut ialah contoh:

interface ShapeInterface
{
    public function draw();
}

class Rectangle implements ShapeInterface
{
    public function draw()
    {
        // 画一个矩形
    }
}

class Square implements ShapeInterface
{
    public function draw()
    {
        // 画一个正方形
    }
}

abstract class ShapeFactory
{
    public static function create($type)
    {
        switch ($type) {
            case 'rectangle':
                return new Rectangle();
            case 'square':
                return new Square();
            default:
                throw new Exception('Invalid shape type');
        }
    }
}

Dalam kod di atas, kelas ShapeFactory ialah kelas kilang abstrak yang kaedah create()nya mencipta objek berdasarkan kategori yang diberikan dan membuang pengecualian.

  1. Corak Pemerhati

Corak Pemerhati ialah corak tingkah laku yang membenarkan satu objek (subjek) memberitahu objek lain (pemerhati) bahawa keadaannya telah berubah. Dalam PHP7.0, anda boleh menggunakan antara muka SplObserver dan SplSubject untuk melaksanakan corak ini. Berikut ialah contoh:

class User implements SplSubject
{
    private $name;
    private $observers;

    public function __construct($name)
    {
        $this->name = $name;
        $this->observers = new SplObjectStorage();
    }

    public function attach(SplObserver $observer)
    {
        $this->observers->attach($observer);
    }

    public function detach(SplObserver $observer)
    {
        $this->observers->detach($observer);
    }

    public function notify()
    {
        foreach ($this->observers as $observer) {
            $observer->update($this);
        }
    }

    public function getName()
    {
        return $this->name;
    }

    public function setName($name)
    {
        $this->name = $name;
        $this->notify();
    }
}

class Logger implements SplObserver
{
    public function update(SplSubject $subject)
    {
        echo 'User "' . $subject->getName() . '" has been updated.' . PHP_EOL;
    }
}

Dalam kod di atas, kelas Pengguna ialah subjek dan melaksanakan antara muka SplSubject. Kelas Logger ialah pemerhati dan melaksanakan antara muka SplObserver.

  1. Corak Penyesuai

Corak Penyesuai ialah corak struktur yang membolehkan kelas sedia ada berfungsi dengan kelas lain, walaupun dengan antara muka yang berbeza. Dalam PHP7.0, anda boleh menggunakan antara muka dan kelas abstrak untuk melaksanakan corak ini. Berikut ialah contoh:

interface DatabaseInterface
{
    public function connect($host, $username, $password, $database);
    public function query($sql);
}

class MysqlDatabase implements DatabaseInterface
{
    protected $connection;

    public function connect($host, $username, $password, $database)
    {
        $this->connection = mysqli_connect($host, $username, $password, $database);
    }

    public function query($sql)
    {
        return mysqli_query($this->connection, $sql);
    }
}

interface DatabaseAdapterInterface
{
    public function query($sql);
}

class MysqlAdapter implements DatabaseAdapterInterface
{
    protected $mysql;

    public function __construct(MysqlDatabase $mysql)
    {
        $this->mysql = $mysql;
    }

    public function query($sql)
    {
        return $this->mysql->query($sql);
    }
}

Dalam kod di atas, DatabaseAdapterInterface ialah antara muka penyesuai dan MysqlAdapter ialah kelas penyesuai.

Ringkasan

Dalam artikel ini, kami membincangkan empat corak reka bentuk dalam PHP7.0: corak tunggal, corak kilang, corak pemerhati dan corak penyesuai. Corak ini sangat berguna dalam pengaturcaraan PHP dan boleh membantu pengaturcara mereka bentuk dan mengatur kod mereka dengan lebih baik. Jika anda belum mempelajari corak ini, inilah masanya untuk bermula.

Atas ialah kandungan terperinci Apakah corak reka bentuk dalam PHP7.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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