Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengaturcaraan Fungsian PHP dan Corak Reka Bentuk

Pengaturcaraan Fungsian PHP dan Corak Reka Bentuk

PHPz
PHPzasal
2024-05-06 13:33:01985semak imbas

Pengaturcaraan fungsional menggunakan nilai tidak berubah dan aplikasi fungsi untuk meningkatkan kestabilan kod. Digabungkan dengan corak reka bentuk, ia menghasilkan aplikasi yang cekap dan mudah diselenggara. Sebagai contoh, corak Strategi menggunakan fungsi pemetaan untuk memilih algoritma dan kami menunjukkan pengisihan tatasusunan menggunakan strategi Isih Buih dan Isih Pantas. . Ia membawa kestabilan dan kebolehselenggaraan yang lebih besar kepada kod.

PHP 函数式编程与设计模式Corak reka bentuk

terbukti, struktur kod boleh guna semula yang menyelesaikan masalah pengaturcaraan biasa. Menggabungkan pengaturcaraan berfungsi dan corak reka bentuk membolehkan anda mencipta aplikasi yang cekap dan mudah diselenggara.

Kes Praktikal: Corak Strategi dan Fungsi Pemetaan

Corak Strategi membolehkan aplikasi memilih algoritma atau operasi tanpa mengubah struktur aplikasi. Kita boleh melaksanakan corak Strategi menggunakan fungsi pemetaan seperti berikut:

<?php

interface SortStrategy
{
    public function sort(array $data): array;
}

class BubbleSortStrategy implements SortStrategy
{
    public function sort(array $data): array
    {
        for ($i = 0; $i < count($data); $i++) {
            for ($j = $i + 1; $j < count($data); $j++) {
                if ($data[$i] > $data[$j]) {
                    $temp = $data[$i];
                    $data[$i] = $data[$j];
                    $data[$j] = $temp;
                }
            }
        }
        return $data;
    }
}

class QuickSortStrategy implements SortStrategy
{
    public function sort(array $data): array
    {
        if (count($data) <= 1) {
            return $data;
        }

        $pivot = $data[0];
        $left = [];
        $right = [];

        for ($i = 1; $i < count($data); $i++) {
            if ($data[$i] < $pivot) {
                $left[] = $data[$i];
            } else {
                $right[] = $data[$i];
            }
        }

        return array_merge($this->sort($left), [$pivot], $this->sort($right));
    }
}


$data = [5, 3, 1, 2, 4];

$bubbleSortStrategy = new BubbleSortStrategy();
$sortedData = array_map(function ($value) use ($bubbleSortStrategy) {
    return $bubbleSortStrategy->sort($value);
}, [$data]);

echo implode(', ', $sortedData[0]); // Output: 1, 2, 3, 4, 5


$quickSortStrategy = new QuickSortStrategy();
$sortedData = array_map(function ($value) use ($quickSortStrategy) {
    return $quickSortStrategy->sort($value);
}, [$data]);

echo implode(', ', $sortedData[0]); // Output: 1, 2, 3, 4, 5

Dalam contoh ini, fungsi

bertindak sebagai pemanggil universal corak Strategi. Ia melalui data dan menggunakan strategi yang ditentukan (algoritma pengisihan) untuk setiap elemen. Dengan cara ini kita boleh menukar algoritma pengisihan berbeza dengan mudah mengikut keperluan tanpa mengubah suai struktur aplikasi.

Atas ialah kandungan terperinci Pengaturcaraan Fungsian PHP dan Corak Reka Bentuk. 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