ドメイン駆動型のデザイン値オブジェクト、一意の値を確保する方法
-
22-10-2019 - |
質問
アンケート作成者を構築しています。アンケートはセクションで構成され、セクションはページで構成され、ページは質問で構成されています。アンケートは集計ルートです。
セクション、ページ、および質問には、アンケート内で一意にする必要があるショートコードと呼ばれるものがあります(ただし、データベース内で一意ではないため、厳密にはアイデンティティではありません)。ショートコードを値オブジェクトにするつもりであり、アンケート内でユニークである必要があるというビジネスルールを含めたいと考えていましたが、それを確実にする方法はわかりません。私の理解では、値オブジェクトはリポジトリまたはサービスレイヤーにアクセスしてはならないということです。
助けてくれてありがとう。
ダレン
解決
アンケートの集計にショートコードを生成する責任を割り当てることができます。アンケートオブジェクトに埋め込まれた単純なカウンターに基づくことができます。ショートコードを作成したいすべてのエンティティは、そのコンポーニングアンケートのNextShortCode()メソッドを呼び出して、次の一意の(現在のアンケートの範囲)ショートコード値を取得します。
他のヒント
明らかに、データベースにPKフィールドが必要になります。あなたがそれをどのように実装するかはあなた次第ですが、それが私なら、私はPKフィールドをあなたの値オブジェクトに運び、それが自動的に処理されるようにします。
あなたはaのようなものを使いたいと思うでしょう ガイド またはuuid。ただし、どのように生成するかは、アプリケーションに使用している言語によって異なります。
所属していません StackOverflow