Comprendre les modèles de conception fonctionnelle PHP et les meilleures pratiques : Modèles de conception : Modèle d'usine : Permet la création de différents types d'objets au moment de l'exécution. Modèle Singleton : assurez-vous qu’une classe n’a qu’une seule instance. Bonne pratique : Convention de dénomination : utilisez des noms de fonctions clairs et concis. Principe de responsabilité unique : une fonction n'effectue qu'une seule tâche. Conseils sur les types de paramètres : spécifiez les types de paramètres et de valeurs de retour. Les valeurs par défaut sont des paramètres facultatifs : flexibilité accrue. Tests unitaires : vérifier le comportement d'une fonction.
Modèles de conception de fonctions PHP et meilleures pratiques
Une fonction est un bloc de code en PHP qui effectue une tâche spécifique. Afin d'écrire du code maintenable, extensible et réutilisable, il est essentiel de comprendre les modèles de conception fonctionnelle et les meilleures pratiques.
Modèles de conception
1. Modèle d'usine
Le modèle d'usine crée des instances d'un objet sans spécifier sa classe concrète. Cela permet de modifier les classes créées au moment de l'exécution.
abstract class ShapeFactory { abstract public function createShape(string $shapeType): Shape; } class CircleFactory extends ShapeFactory { public function createShape(string $shapeType): Shape { if ($shapeType === 'circle') { return new Circle(); } throw new InvalidArgumentException(); } } $circleFactory = new CircleFactory(); $circle = $circleFactory->createShape('circle');
2. Modèle Singleton
Le modèle singleton garantit qu'une seule instance d'une classe peut être créée. Ceci est généralement utilisé pour créer des objets d'accès global.
class Database { private static $instance; private function __construct() {} public static function getInstance(): Database { if (self::$instance === null) { self::$instance = new Database(); } return self::$instance; } } // 此处只能获取 Database 的一个实例 $db1 = Database::getInstance(); $db2 = Database::getInstance(); if ($db1 === $db2) { echo '同一实例'; }
Bonnes pratiques
1. Convention de dénomination
Utilisez des noms de fonction clairs et concis qui reflètent la fonction de la fonction.
function calculateArea(Shape $shape)
2. Principe de responsabilité unique
Une fonction n'est responsable que d'une seule tâche. La logique complexe doit être décomposée en fonctions plus petites.
function calculateArea(Shape $shape) { switch ($shape->getType()) { case 'circle': return pi() * $shape->getRadius() ** 2; case 'rectangle': return $shape->getWidth() * $shape->getHeight(); } }
3. Indice de type de paramètre
Spécifiez les types de paramètres de fonction et les valeurs de retour pour améliorer la lisibilité et la sécurité du code.
function calculateArea(Shape $shape): float
4. Valeurs par défaut
Fournissez des valeurs par défaut pour les paramètres facultatifs afin d'augmenter la flexibilité et la réutilisabilité.
function calculateArea(Shape $shape, float $scale = 1.0): float
5. Tests unitaires
Écrivez des tests unitaires pour vérifier que les fonctions se comportent comme prévu.
class CalculateAreaTest extends PHPUnit\Framework\TestCase { public function testCircleArea() { $shape = new Circle(3); $this->assertEquals(28.27, calculateArea($shape), '', 0.01); } }
Suivez ces modèles de conception et ces bonnes pratiques pour écrire du code PHP évolutif, maintenable et réutilisable.
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!