Question

Je ne suis même pas sûr de savoir comment le titre de cette qn. Mais, en espérant qu'il existe un moyen facile de le faire dans un langage dynamique comme groovy.

que j'ai un service de première classe, où je délègue la logique métier. les méthodes qu'elle contient sont funA(), funB()... funX().

Maintenant, j'ai une classe de contrôleur, où j'appelle la fermeture de service, qui peut être invoqué comme service.funA (). Maintenant, sur la base d'une variable (qui peut avoir des valeurs A, B ... X), je dois cal la fermeture de service correct. Fondamentalement, pour éviter d'écrire beaucoup de si des instructions conditionnelles. Quelque chose comme service."fun+var"() ferait. Je ne sais pas s'il est possible de remplacer la variable dans le nom de fermeture (fonction). ou de toute façon en fonction passage (nom) en tant que paramètre ... pas sûr

Je pense que PHP a une fonction similaire http://php.net/ manuel / fr / functions.variable-functions.php

Merci pour tout pointeur ..

Était-ce utile?

La solution

Oui, cela est possible. Cela devrait faire ce que vous voulez:

service."fun${var}"()

Le titre est correct méthode dynamique .

scroll top