Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
10.2.2.4. Utiliser une injection pour étendre une implémentation
Résumé
Vous pouvez utiliser une injection pour ajouter ou modifier une caractéristique de votre code existant. Cet exemple vous montre comment ajouter une capacité de traduction à une classe existante. La traduction est une caractéristique hypothétique et la façon dont elle est implémentée dans cet exemple est par pseudo-code, et elle est fournie à titre illustratif uniquement.
L'exemple part du principe que vous avez déjà une classe Welcome, qui possède une méthode
buildPhrase
. La méthode buildPhrase
utilise le nom d'une ville comme paramètre et crée une formule telle que "Welcome to Boston". Votre objectif est de créer une version de cette classe Welcome
pouvant traduire cette formule d'accueil dans une autre langue.
Exemple 10.2. Injecter un Bean Translator
dans la classe Welcome
.
Le pseudo-code suivant injecte un objet
Translator
hypothétique dans la classe Welcome
. L'objet Translator
peut être un bean sans état EJB ou un autre type de bean, pouvant traduire des phrases d'une langue à une autre. Ainsi, le Translator
est utilisé pour traduire la formule d'accueil complète, sans avoir à modifier la classe Welcome
d'origine. Le Translator
est injecté avant que la méthode buildPhrase
ne soit implémentée.
L'échantillon de code ci-dessous est un exemple de classe Welcome de Traduction.
public class TranslatingWelcome extends Welcome { @Inject Translator translator; public String buildPhrase(String city) { return translator.translate("Welcome to " + city + "!"); } ... }