Maison > Article > développement back-end > Programmation fonctionnelle PHP et modèles de conception
La programmation fonctionnelle utilise des valeurs immuables et des applications de fonctions pour améliorer la stabilité du code. Combiné avec des modèles de conception, il crée des applications efficaces et faciles à entretenir. Par exemple, le modèle Strategy utilise une fonction de mappage pour sélectionner un algorithme, et nous avons démontré le tri d'un tableau à l'aide des stratégies Bubble Sort et Quick Sort.
Programmation fonctionnelle PHP et modèles de conception
La programmation fonctionnelle est un paradigme de programmation qui traite le calcul comme l'application de fonctions à des valeurs immuables, plutôt que l'exécution de commandes sur l'état. Cela apporte une plus grande stabilité et maintenabilité au code.
Les modèles de conception sont des structures de code éprouvées et réutilisables qui résolvent des problèmes de programmation courants. La combinaison de programmation fonctionnelle et de modèles de conception vous permet de créer des applications efficaces et faciles à maintenir.
Cas pratique : modèle de stratégie et fonction de cartographie
Le modèle de stratégie permet à une application de sélectionner un algorithme ou une opération sans modifier la structure de l'application. Nous pouvons implémenter le modèle Strategy à l'aide de fonctions de mappage comme suit :
<?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
Dans cet exemple, la fonction array_map
agit comme un appelant universel du modèle Strategy. Il parcourt les données et applique la stratégie spécifiée (algorithme de tri) à chaque élément. De cette façon, nous pouvons facilement échanger différents algorithmes de tri selon nos besoins sans avoir à modifier la structure de l'application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!