私は新しいアプリケーションを構築していて、ドメイン駆動設計に不慣れです。私はドキュメントを読み、ドメインモデルのほとんどをモデル化することができましたが、2つのクエリについてアドバイスが必要です。
2つのドメインオブジェクトチャネルとプログラムがあります。どちらも独立してアクセスできるため、これらを両方ともエンティティとしてモデル化しました。チャンネルはプログラムのリストを持つことができるので、これをチャンネルの属性として入れました。私の質問は、プログラムリストにどのように入力するかです。ChannelServiceのgetChannerByIdメソッドが最初にチャネル情報を取得し、次にProgramServiceを呼び出してチャネルのプログラムのリストを取得しても問題ありません。例:
Channel { String channelId List <Program> programList } Program { String programId { } ChannelService { Channel getChannelById(String channelId) } ProgramService { Program getProgramById(String programId) List <Program> getProgramsByChannelById(String channelId) }
製品ドメインオブジェクトがありますが、その属性の一部(仕様や互換性など)には、非常に時間のかかる操作が含まれます。これらの属性は常に必要なわけではないので、これらをドメインオブジェクトの一部として配置し、必要に応じてこれらの属性を設定する個別のサービスメソッドを使用してもかまいません。
Product { String productId Specification specification List <Product> compatibleProducts } ProductService { Product getProduct(String productId); void getProductSpecifications(Product product); void getCompatibleProducts(Product product); }
アドバイスをいただければ幸いです。