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