0

データベース テーブルの DAO を作成しました。SAP ABAP では、言語依存のテキストを含む追加のテキスト テーブルを使用できます (言語コードはキーの一部です)。現在、プログラムの最初にDAOインスタンスを作成し(依存性注入)、DAOを特定の言語に効果的にバインドする言語キーを渡し、DAOがその特定の言語からのみテキストを読み取れるようにします。

ただし、プログラムの後半で、別の言語からテキストを取得する必要があります。どうすればこれに対処できますか?

  • DAOのcrudおよびfind-byメソッドに言語キーを明示的に含めますか? これには、DAO のクライアントが言語キーをそのメソッドに公開し、それを適切に DAO に渡す必要があります。例えばmethod read(id, languageCode) returns <thing>。さらに、ドメインオブジェクトがDAO/インフラストラクチャのがらくたについて何も知らないようにしたい.

  • DAO 自体に、別の言語 (ファクトリ) にバインドされた DAO の別のインスタンスを作成できる言語対応インターフェイスを提供します。これには、DAO に明示的にアクセスする必要があります。それ以外の場合は非表示であり、匂いもします。例えばmethod createWithLang(langCode) returns <DAO>

  • ドメイン オブジェクトを言語対応にします。これは、言語依存のメソッドが言語コードを明示的に公開することを意味します。ただし、ドメイン オブジェクトは、適切なテキストを返すためにすべての言語のすべてのテキストを認識している必要があります。または、適切なテキストをリロードするために DAO に直接アクセスする必要があります。次に、これを怠惰に行うことは、追加の課題です (ABAP OO に関して)。

すべてのアドバイスは大歓迎です

4

2 に答える 2