私が抱えている最大の困難は、システム内で私が特定した各オブジェクトの責任をどこに収容するかを見つけることです(問題空間など)。ライブラリ管理システムの機能の非常に簡略化した説明を投稿しています。
ライブラリはユーザーリポジトリとブックリポジトリを1対1の関係で保持し、リポジトリは対応するエンティティを1対多の関係で保持します。
ユーザーリポジトリ:
- すべてのユーザー/問題のドメインに関連する関心のあるユーザーのリストを取得します。
- ユーザーエンティティを外部システム(データベースまたはクラウド)に保存します
ブックレポ:
- ユースケースにそれぞれ対応するすべてのブック/関心のあるブックのリストを取得します。
- Bookエンティティを外部システム(データベースまたはクラウド)に保存します
- 本を追加
注:達成したい
標準的な方法は、ビジネスロジックを作成するときにこれらの認証ルールをすべて無視し、その後、アプリケーションに標準のロールベースの認証システムを単に追加することだと思います。
たとえば、アプリがWebページである場合、スタッフ以外のユーザーが「本の状態を変更する」ページにアクセスするのを防ぐだけです。