Cet article présente principalement l'explication détaillée et les cas du modèle de délégation PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Modèle de délégation
En attribuant ou en déléguant à d'autres objets, le modèle de conception Delegate supprime la prise de décision et les fonctionnalités complexes des objets principaux.
Scénarios d'application
1. Conception d'une classe de CD, qui dispose d'un mode de lecture mp3 et d'un mode de lecture mp4
2. Avant l'amélioration, le mode de lecture de la classe CD était utilisé. , vous devez déterminer quel mode de lecture choisir dans la classe instanciée
3. Après amélioration, le mode de lecture est passé dans la fonction playList en tant que paramètre, et la méthode correspondante à jouer peut être automatiquement trouvée.
Code : classe de cd, avant amélioration, la sélection du mode de lecture était pénible
<?php //委托模式-去除核心对象中的判决和复杂的功能性 //使用委托模式之前,调用cd类,选择cd播放模式是复杂的选择过程 class cd { protected $cdInfo = array(); public function addSong($song) { $this->cdInfo[$song] = $song; } public function playMp3($song) { return $this->cdInfo[$song] . '.mp3'; } public function playMp4($song) { return $this->cdInfo[$song] . '.mp4'; } } $oldCd = new cd; $oldCd->addSong("1"); $oldCd->addSong("2"); $oldCd->addSong("3"); $type = 'mp3'; if ($type == 'mp3') { $oldCd->playMp3(); } else { $oldCd->playMp4(); }
Code : classe de cd améliorée grâce au mode délégation
<?php //委托模式-去除核心对象中的判决和复杂的功能性 //改进cd类 class cdDelegate { protected $cdInfo = array(); public function addSong($song) { $this->cdInfo[$song] = $song; } public function play($type, $song) { $obj = new $type; return $obj->playList($this->cdInfo, $song); } } class mp3 { public function playList($list) { return $list[$song]; } } class mp4 { public function playList($list) { return $list[$song]; } } $newCd = new cd; $newCd->addSong("1"); $newCd->addSong("2"); $newCd->addSong("3"); $type = 'mp3'; $oldCd->play('mp3', '1'); //只要传递参数就能知道需要选择何种播放模式
Recommandations associées :
Tutoriel d'exemple de modèle de délégation en php
Modèle de conception avancé orienté objet PHP : exemples d'utilisation de modèle de délégation
Mode de délégation du modèle de conception PHP
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!