Outils pour utilisateurs

Outils du site


godot:strategy_pattern

Ceci est une ancienne révision du document !


Résumé de cette vidéo

Strategy Pattern : Idée c'est de faire du code modulable. Le code fait appel à une fonction qui est ailleurs. On créer un script global avec une fonction qui ne fait rien (pass ou autre) puis des sous scripts qui étendent le script global, avec des fonctions spécifiques.

Exemple avec un filtre de nombres, on aurait :

class_name NumFilter #on déclare le script global NumFilter

func is_filtered(num) -> bool : #fonction is filtered qui vérifie si on filtre ou non (vrai,faux condition booléenne) 
return false #ne filtre rien
class_name EvenNumFilter #filtre les nombres pairs
extends Num Filter

func is_filtered(num) -> bool : 
 return num % 2 == 0 #ça dit si le numéro modulo deux fait bien 0, donc pair, donc tej
class_name NegativeNumFilter #filtre les nombres négatifs
extends Num Filter

func is_filtered(num) -> bool : 
 return num < 0 #ça dit si le numéro est inférieur à zéro, donc négatif, donc tej

Une fois ces filtres créés on peut les utiliser comme ça :

func filter_list(filter : NumFilter):
 var list = [-4, -2, 0, 1.35, 4, 5]

 for x in list :
  if filter.is_filtered(x):
   list.remove(x)
godot/strategy_pattern.1723988444.txt.gz · Dernière modification : 2024/08/18 15:40 de ilan