php 策略模式的学习 --引自《深入php面向对象模式与实践》
#策略(Strategy)模式 #定义抽象类 Lesson abstract class Lesson{ private $duration; private $coststrategy; #定义属性 public function __construct($duration , CostStrategy $strategy){ #实例化时,传进来一个对象 #用CostStrategy 类来处理 某个行为,而不用调用自身的方法来处理 $this->duration =$duration; $this->coststrategy = $strategy; } public function cost(){ return $this->coststrategy->cost($this); # ??? ??? ??? ??? ??? ??? ??? ??? ??? } #不是用抽象类的 abstract CostStrategy 类 中的方法 cost 来实现的, #从输出的值看来 是用的 #TimedCostStrategy #FixedCostStrategy 中 的方法,所以 # 在实例化对象时,用了 #TimedCostStrategy #FixedCostStrategy 中 的方法 public function chargeType(){ return $this->coststrategy->chargeType(); } public function getDuration(){ return $this->duration; } } abstract class CostStrategy{ #抽象类是不能实例化的 abstract function cost( Lesson $lesson); #传入的参数是对象 abstract function chargeType(); } class TimedCostStrategy extends CostStrategy{ public function cost(Lesson $lesson){ return ($lesson->getDuration()*5); # 在Lesson 类中,getDuration 的返回值是 return $this->duration; } public function chargeType(){ return 'hourly rate!'; } } class FixedCostStrategy extends CostStrategy{ function cost(Lesson $lesson){ return 30; #此处为调用如何方法,只是单纯的返回一个值 } function chargeType(){ return 'fixed rate'; } } #继承类Lesson class Lecture extends Lesson{ } #继承类Lesson class Seminar extends Lesson{ } #实例化对象 $lessons[] = new Seminar(4,new TimedCostStrategy()); #生成了一个TimeConsTrategy的一个对象 $lessons[]= new Lecture(4 , new FixedCostStrategy()); #生成了一个FixedConsTrategy的一个对象 #分别 调用TimeConsTrategy && FixedConsTrategy 中的方法 const() 和 chargeType(),在执行遍历 foreach ($lessons as $lesson) { # 遍历输出 print "lesson charge {$lesson->cost()}==>>"; print "Charge type: {$lesson->chargeType()}<br>"; }
以上就介绍了php 策略模式的学习 --引自《深入php面向对象模式与实践》,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

L'utilisation de return en langage C est la suivante : 1. Pour les fonctions dont le type de valeur de retour est void, vous pouvez utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. 2. Pour les fonctions dont le type de valeur de retour n'est pas void, la fonction de ; l'instruction return sert à terminer l'exécution de la fonction.Le résultat est renvoyé à l'appelant ;3. Terminer l'exécution de la fonction plus tôt que prévu.À l'intérieur de la fonction, nous pouvons utiliser l'instruction return pour terminer l'exécution de la fonction plus tôt. si la fonction ne renvoie pas de valeur.

Fonction signifie fonction. Il s'agit d'un bloc de code réutilisable avec des fonctions spécifiques. C'est l'un des composants de base d'un programme. Il peut accepter des paramètres d'entrée, effectuer des opérations spécifiques et renvoyer des résultats. code pour améliorer la réutilisabilité et la maintenabilité du code.

Code source : publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}# Sortie La sortie du code ci-dessus peut simplement conclure : return est exécuté avant finalement. Jetons un coup d'œil à ce qui se passe au niveau du bytecode. Ce qui suit intercepte une partie du bytecode de la méthode case1 et compare le code source pour annoter la signification de chaque instruction dans

Dans cet article, nous découvrirons la fonction enumerate() et le but de la fonction « enumerate() » en Python. Qu'est-ce que la fonction enumerate() ? La fonction enumerate() de Python accepte une collection de données comme paramètre et renvoie un objet d'énumération. Les objets d'énumération sont renvoyés sous forme de paires clé-valeur. La clé est l'index correspondant à chaque élément, et la valeur est les éléments. Syntaxe enumerate(iterable,start) Paramètres iterable - Les données transmises dans la collection peuvent être renvoyées sous forme d'objet d'énumération, appelé iterablestart - Comme son nom l'indique, l'index de départ de l'objet d'énumération est défini par start. si nous ignorons

Explication détaillée du rôle et de la fonction de la table MySQL.proc MySQL est un système de gestion de bases de données relationnelles populaire. Lorsque les développeurs utilisent MySQL, ils impliquent souvent la création et la gestion de procédures stockées (StoredProcedure). La table MySQL.proc est une table système très importante. Elle stocke les informations relatives à toutes les procédures stockées dans la base de données, y compris le nom, la définition, les paramètres, etc. Dans cet article, nous expliquerons en détail le rôle et les fonctionnalités de la table MySQL.proc

Les fonctions JavaScript fournissent deux interfaces pour interagir avec le monde extérieur. Les paramètres servent d'entrée pour recevoir des informations externes ; la valeur de retour sert de sortie pour renvoyer les résultats de l'opération vers le monde extérieur. L'article suivant vous amènera à comprendre la valeur de retour de la fonction JavaScript et à analyser brièvement l'utilisation de l'instruction return. J'espère qu'elle vous sera utile !

Le sucre de syntaxe de configuration de Vue3.2 est un sucre de syntaxe au moment de la compilation qui utilise l'API combinée dans un composant de fichier unique (SFC) pour résoudre la configuration lourde de Vue3.0. Les variables, fonctions et contenus déclarés introduits par l'importation sont exposés via. return, afin qu'ils puissent être utilisés dans Vue3.0. Problèmes d'utilisation 1. Il n'est pas nécessaire de renvoyer les variables, fonctions et contenus déclarés introduits par import lors de l'utilisation. Vous pouvez utiliser du sucre syntaxique //importer le contenu introduit import{getToday. }from'./utils'//variable constmsg='Bonjour !'//function func

L'utilisation de la valeur de retour Python est que lorsque la fonction exécute l'instruction return, l'exécution s'arrêtera immédiatement et la valeur spécifiée sera renvoyée à l'endroit où la fonction a été appelée. Utilisation détaillée : 1. Renvoie une seule valeur ; 2. Renvoie plusieurs valeurs ; 3. Renvoie une valeur nulle 4. Terminez l'exécution de la fonction plus tôt.
