11.2.2.4. インジェクションを使用した実装の拡張
概要
インジェクションを使用して、既存のコードの機能を追加または変更できます。この例は、既存のクラスに翻訳機能を追加する方法を示しています。翻訳は架空の機能であり、例で実装される方法は擬似コードであり、説明のためにのみ提供されています。
この例では、メソッドを持つ Welcome クラスがすでにあることを前提としています。
buildPhrase
。buildPhrase
メソッドは、都市の名前を引数として取得し、「Welcome to Boston!」などのフレーズを出力します。 あなたの目標は、のバージョンを作成することですWelcome
挨拶を別の言語に翻訳できるクラス。
例11.2 注入するTranslator
Bean Into theWelcome
クラス
次の擬似コードは、架空のものを挿入します
Translator
オブジェクトにWelcome
クラス。TheTranslator
オブジェクトは、EJB ステートレス Bean または別のタイプの Bean であり、文をある言語から別の言語に翻訳できます。この場合、Translator
元の挨拶を実際に変更せずに、挨拶全体を翻訳するために使用されますWelcome
まったくクラス。TheTranslator
の前に注入されますbuildPhrase
メソッドが実装されます。
以下のコードサンプルは、TranslatingWelcome クラスの例です。
public class TranslatingWelcome extends Welcome { @Inject Translator translator; public String buildPhrase(String city) { return translator.translate("Welcome to " + city + "!"); } ... }