Rumah pembangunan bahagian belakang tutorial php Penjelasan terperinci tentang corak arahan dalam PHP dan kaedah aplikasinya

Penjelasan terperinci tentang corak arahan dalam PHP dan kaedah aplikasinya

Jun 08, 2023 pm 05:12 PM
mod arahan aplikasi php Penerangan terperinci kaedah

Corak arahan ialah corak reka bentuk yang merangkum permintaan ke dalam objek, membolehkan anda membuat parameter klien dengan permintaan, baris gilir atau log permintaan yang berbeza dan menyokong operasi yang boleh dibuat asal. Idea teras corak ini adalah untuk memisahkan tingkah laku yang diminta oleh klien daripada tingkah laku pelaksanaan. Mod arahan dalam PHP digunakan secara meluas dalam sistem yang perlu merekod log aplikasi, dan sistem yang perlu melaksanakan perintah sejarah secara dinamik.

Komponen teras corak arahan termasuk arahan, penerima dan pemanggil. Objek arahan membawa permintaan dan parameter operasi klien Penerima ialah objek yang benar-benar melaksanakan permintaan ini, dan pemanggil menghantar permintaan kepada penerima. Kelebihan ini ialah pemanggil tidak perlu mengetahui penerima mana permintaan akan dilakukan, kerja ini boleh dicapai dengan mudah melalui objek arahan.

Objek arahan biasanya perlu mengandungi bahagian berikut: kaedah

  1. execute, yang sebenarnya akan melaksanakan operasi arahan. Kaedah
  2. undo, apabila pemanggil perlu membatalkan arahan, kaedah ini akan memulihkan penerima kepada keadaan asal. Kaedah
  3. redo, apabila pemanggil perlu membuat semula arahan, kaedah ini akan memulihkan penerima kepada keadaan pelaksanaan terakhir arahan.

Penerima melaksanakan operasi tertentu, seperti memproses fail, melaksanakan operasi pangkalan data, dsb. Pemanggil bertanggungjawab untuk membuat permintaan kepada penerima, tetapi tidak berinteraksi secara langsung dengan penerima. Objek arahan bertindak sebagai jambatan antara pemanggil dan penerima. Ia memisahkan kandungan khusus arahan daripada pemanggil dan penerima, membolehkan arahan disimpan, bersiri, dihantar atau dilaksanakan berulang kali.

Di bawah ini kami akan menggunakan contoh khusus untuk memahami lebih lanjut mod arahan dalam PHP.

Andaikan kita perlu melaksanakan editor teks ringkas yang menyokong operasi buat asal dan buat semula. Pertama, kita perlu mentakrifkan Perintah kelas asas abstrak, yang akan mengisytiharkan tiga kaedah execute, undo dan redo.

abstract class Command {
    abstract public function execute();
    abstract public function undo();
    abstract public function redo();
}
Salin selepas log masuk

Kemudian, kita perlu melaksanakan arahan khusus, seperti membuka fail, menyimpan fail dan memadamkan teks.

class OpenFileCommand extends Command {
    public function __construct(FileReceiver $receiver) {
        $this->receiver = $receiver;
    }
    public function execute() {
        $this->receiver->openFile();
    }
    public function undo() {
        $this->receiver->closeFile();
    }
    public function redo() {
        $this->execute();
    }
}

class SaveFileCommand extends Command {
    public function __construct(FileReceiver $receiver) {
        $this->receiver = $receiver;
    }
    public function execute() {
        $this->receiver->saveFile();
    }
    public function undo() {
        // No need to implement
    }
    public function redo() {
        $this->execute();
    }
}

class DeleteTextCommand extends Command {
    public function __construct(TextReceiver $receiver) {
        $this->receiver = $receiver;
    }
    public function execute() {
        $this->receiver->deleteText();
    }
    public function undo() {
        $this->receiver->insertText();
    }
    public function redo() {
        $this->execute();
    }
}
Salin selepas log masuk

Penerima melaksanakan operasi tertentu, seperti membuka fail, menyimpan fail dan memadam teks.

class FileReceiver {
    public function openFile() {
        // Open file
    }
    public function closeFile() {
        // Close file
    }
    public function saveFile() {
        // Save file
    }
}

class TextReceiver {
    private $text = '';
    public function insertText($text) {
        $this->text .= $text;
    }
    public function deleteText() {
        $this->text = substr($this->text, 0, -1);
    }
    public function getText() {
        return $this->text;
    }
}
Salin selepas log masuk

Akhir sekali, kami perlu melaksanakan peranti untuk menghantar permintaan kepada penerima.

class Invoker {
    private $commands = [];
    private $current = 0;
    public function addCommand(Command $command) {
        array_splice($this->commands, $this->current);
        $this->commands[] = $command;
        $command->execute();
        $this->current++;
    }
    public function undo() {
        if ($this->current > 0) {
            $this->current--;
            $command = $this->commands[$this->current];
            $command->undo();
        }
    }
    public function redo() {
        if ($this->current < count($this->commands)) {
            $command = $this->commands[$this->current];
            $command->redo();
            $this->current++;
        }
    }
}
Salin selepas log masuk

Apabila menggunakan editor teks, kita boleh menggunakan Invoker untuk menambah dan membuat asal arahan, yang akan mengekalkan sejarah arahan untuk operasi seterusnya. Contohnya:

$invoker = new Invoker();

// Open file
$invoker->addCommand(new OpenFileCommand(new FileReceiver()));

// Type 'Hello'
$textReceiver = new TextReceiver();
$textReceiver->insertText('Hello');
$invoker->addCommand(new DeleteTextCommand($textReceiver));

// Save file
$invoker->addCommand(new SaveFileCommand(new FileReceiver()));

// Undo
$invoker->undo();

// Redo
$invoker->redo();
Salin selepas log masuk

Seperti yang ditunjukkan dalam kod di atas, kami mula-mula melaksanakan arahan untuk membuka fail, kemudian menambah arahan untuk memadam teks, melaksanakan arahan dan menyimpan arahan fail Akhirnya, kami menggunakan Invoker untuk membatalkan operasi dan membuat semula operasi.

Ringkasnya, corak arahan dalam PHP boleh membantu kami merangkum permintaan dan memisahkannya daripada penerima dan pemanggil, menjadikan aplikasi lebih modular dan mudah diperluaskan. Kami boleh menambah fungsi baharu pada aplikasi kami dengan mudah hanya dengan mencipta objek arahan yang berbeza. Sama ada editor teks atau aplikasi lain, corak arahan dalam PHP ialah corak reka bentuk yang sangat berguna.

Atas ialah kandungan terperinci Penjelasan terperinci tentang corak arahan dalam PHP dan kaedah aplikasinya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyelesaikan kod ralat Microsoft Store 0x80073D02? Bagaimana untuk menyelesaikan kod ralat Microsoft Store 0x80073D02? Apr 26, 2023 pm 06:31 PM

Bagaimana untuk menyelesaikan kod ralat Microsoft Store 0x80073D02?

Cara untuk dwi-but Windows 11 dan macOS [Panduan Lengkap] Cara untuk dwi-but Windows 11 dan macOS [Panduan Lengkap] Apr 14, 2023 pm 05:58 PM

Cara untuk dwi-but Windows 11 dan macOS [Panduan Lengkap]

Bagaimana untuk membetulkan masalah salin dan tampal fungsi Windows 11 yang tidak bertindak balas? Bagaimana untuk membetulkan masalah salin dan tampal fungsi Windows 11 yang tidak bertindak balas? Apr 26, 2023 pm 08:55 PM

Bagaimana untuk membetulkan masalah salin dan tampal fungsi Windows 11 yang tidak bertindak balas?

Aplikasi PHP: gunakan tarikh semasa sebagai nama fail Aplikasi PHP: gunakan tarikh semasa sebagai nama fail Jun 20, 2023 am 09:33 AM

Aplikasi PHP: gunakan tarikh semasa sebagai nama fail

Selesaikan kod ralat 0xc004f074 apabila mengaktifkan Windows 11. Selesaikan kod ralat 0xc004f074 apabila mengaktifkan Windows 11. May 08, 2023 pm 07:10 PM

Selesaikan kod ralat 0xc004f074 apabila mengaktifkan Windows 11.

Tutorial: Gunakan Pemesejan Awan Firebase untuk melaksanakan fungsi tolak mesej berjadual dalam aplikasi PHP Tutorial: Gunakan Pemesejan Awan Firebase untuk melaksanakan fungsi tolak mesej berjadual dalam aplikasi PHP Jul 25, 2023 am 11:21 AM

Tutorial: Gunakan Pemesejan Awan Firebase untuk melaksanakan fungsi tolak mesej berjadual dalam aplikasi PHP

Pengaturcaraan generik dalam PHP dan aplikasinya Pengaturcaraan generik dalam PHP dan aplikasinya Jun 22, 2023 pm 08:07 PM

Pengaturcaraan generik dalam PHP dan aplikasinya

Cara memasang kemas kini Windows 10/11 secara manual menggunakan PowerShell Cara memasang kemas kini Windows 10/11 secara manual menggunakan PowerShell Apr 23, 2023 pm 05:13 PM

Cara memasang kemas kini Windows 10/11 secara manual menggunakan PowerShell

See all articles