5

ドメイン モデル タイプがあります。その多数のプロパティの 1 つは、戻り値を適切な言語に翻訳する機能を提供するために ITranslationService を必要とします。

ITranslationService をドメイン モデル型のコンストラクターに挿入する必要があります (そのため、型がインスタンス化されるすべての場所を変更する必要があり、NhIbernate を介して取得するときに初期化を考慮する必要があります)。多くのプロパティの); または、使用できる別の機能パターンはありますか?

誰かが共有できる関連する経験を持っていますか?

4

2 に答える 2

4

ドメイン オブジェクトが翻訳を行うとは思わないでしょう。代わりに、ドメイン オブジェクト (または関連するプロパティ値) をパラメータとして翻訳サービスを使用し、翻訳された値を返します。たとえば、単に行うことができます

var translatedString = yourServiceInstance.Translate(theDomainObject.Property);
于 2010-07-28T11:03:32.843 に答える
1

ITranslationServiceをドメインモデルタイプのコンストラクターに注入する必要があります

はい、状況によってはそれが理にかなっているかもしれません。エンティティへのサービスの注入を常に回避する場合は、アンチパターンである貧血ドメインモデルにつながる可能性があります。

エンティティをインスタンス化する必要のあるコードは、依存性注入を処理するファクトリを使用することで、追加のコンストラクター引数から保護できます。

NHibernateは、コンストラクターを介してエンティティにサービスを注入することもできます:http: //fabiomaulo.blogspot.com/2008/11/entities-behavior-injection.html

于 2010-07-28T11:40:11.507 に答える