エンティティとユースケースの明確化

私が理解している限り、use casesまたは何らかのアクションを実行するためにinteractors使用entitiesするのに対し、entitiesは私たちを保持しますbusiness rules

この定義によると:

ユースケースはエンティティと相互作用し、エンティティに依存します

ユースケースはエンティティにどのように依存しますか、関係は何ですか?

例えば、我々は3つの機能と銀行業務アプリを持っているとしましょう:loginview balancetransfer funds

したがって、資金を送金できるようにするには、ユーザーはログインしていて、十分な残高が必要です。

ここでのユースケースはでtransfer fundsあり、上記のステートメントはである思います。business ruleその場合、どのように実装しますか?

非常に多くの類似点がありますが、適切な実装はほとんどありません。

ror

私の理解を共有したいと思います。

  1. エンティティは、おそらく他のエンティティ以外には何にも依存しません。さまざまなアプリケーションで再利用可能なデータ(状態)とロジックを保持します。また、エンティティをプレーンPOJOと見なしました(ただし、データアクセス層から返されるものと同じではありません)
  2. ユースケースはエンティティと相互作用し(したがってエンティティに依存します)、特定のアプリケーションのロジックを保持します(通常、さまざまなリポジトリまたはデータアクセス層ゲートウェイを介してそのロジックを実行します)。

指定した例の場合:

  1. エンティティ:
    • ユーザー(ユーザー名、ハッシュ化されたパスワード、ユーザー名の検証、プレーンテキストのパスワードのハッシュなどのロジックを保持します)
    • バランス(ユーザーの依存関係、金額、制限、指定された転送金額がOKかどうかの確認などのロジックを保持します)
  2. ユースケース:
    • 認証(ユーザー名/パスワードの入力に基づいて、それを検証し、(データへの何らかのリポジトリまたはゲートウェイを使用して)ユーザーエンティティをバックエンドからプルし、トークンが成功する可能性があります)、成功した場合はキャッシュするか、エラーがある場合は報告します
    • バランスの表示(ユーザーエンティティの入力に基づいて、バックエンドからバランスエンティティをプルします(上記と同じ...)、エラーがある場合は報告します
    • 送金(ユーザーエンティティと金額入力に基づいて、残高エンティティをプルし、送金が許可されているかどうかを確認し、許可されている場合は実行し、許可されていない場合はエラーを報告します)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

明確なケースのネガティブを示す

分類Dev

960gsとスケルトンのユーティリティ

分類Dev

Haskellカウンティングソートの説明と明確化

分類Dev

JSPでのHTMLエンティティのエスケープとエスケープ解除

分類Dev

「エンティティ」固有のシーケンス

分類Dev

「非管理」ユーティリティクラスの同時アクセスとスケーリング

分類Dev

グレムリンのユースケース-Intプロパティとcoalesce()

分類Dev

エンティティマネージャーのテストケース

分類Dev

カスタムアロケータとstlに関するテンプレート宣言、エイリアス、および特殊化の明確化

分類Dev

Microsoft.EntityFrameworkCore DbSet.Update([NotNullAttribute] TEntityエンティティ)のユースケース

分類Dev

明確なナビゲーションバックスタックとアクティビティの再作成

分類Dev

カスケードによるエンティティの削除

分類Dev

ブレーク機能とコンティニュー機能の明確化

分類Dev

クリーンなアーキテクチャ、ユースケース、エンティティ

分類Dev

C ++の移動セマンティクスの明確化

分類Dev

Dockerステータスの明確化

分類Dev

永続コンテキストからエンティティを切り離すユースケース?

分類Dev

レスポンスエンティティのmockitoユニットテストケースは、HTTP GETリクエストを実行します

分類Dev

エンティティフレームワークの10進スケール

分類Dev

XSSを防ぐためのHTMLエンティティのエスケープ

分類Dev

システムインストール中のサードパーティソフトウェアオプションの明確化

分類Dev

システムインストール中のサードパーティソフトウェアオプションの明確化

分類Dev

新しいエンティティのみをカスケード永続化する方法

分類Dev

VHDLでのコンポーネントのインスタンス化とエンティティのインスタンス化

分類Dev

「XML」エンティティと「XMLスキーマ」エンティティの違いは何ですか?

分類Dev

エンティティを永続化すると、結合列を持つエンティティのカスケードに関するエラーが2回回避されるのはなぜですか

分類Dev

パッケージSpringJavaのエンティティのリスト

分類Dev

BlueZユーティリティのインストール

分類Dev

GoogleTestテストフィクスチャの明確化

Related 関連記事

  1. 1

    明確なケースのネガティブを示す

  2. 2

    960gsとスケルトンのユーティリティ

  3. 3

    Haskellカウンティングソートの説明と明確化

  4. 4

    JSPでのHTMLエンティティのエスケープとエスケープ解除

  5. 5

    「エンティティ」固有のシーケンス

  6. 6

    「非管理」ユーティリティクラスの同時アクセスとスケーリング

  7. 7

    グレムリンのユースケース-Intプロパティとcoalesce()

  8. 8

    エンティティマネージャーのテストケース

  9. 9

    カスタムアロケータとstlに関するテンプレート宣言、エイリアス、および特殊化の明確化

  10. 10

    Microsoft.EntityFrameworkCore DbSet.Update([NotNullAttribute] TEntityエンティティ)のユースケース

  11. 11

    明確なナビゲーションバックスタックとアクティビティの再作成

  12. 12

    カスケードによるエンティティの削除

  13. 13

    ブレーク機能とコンティニュー機能の明確化

  14. 14

    クリーンなアーキテクチャ、ユースケース、エンティティ

  15. 15

    C ++の移動セマンティクスの明確化

  16. 16

    Dockerステータスの明確化

  17. 17

    永続コンテキストからエンティティを切り離すユースケース?

  18. 18

    レスポンスエンティティのmockitoユニットテストケースは、HTTP GETリクエストを実行します

  19. 19

    エンティティフレームワークの10進スケール

  20. 20

    XSSを防ぐためのHTMLエンティティのエスケープ

  21. 21

    システムインストール中のサードパーティソフトウェアオプションの明確化

  22. 22

    システムインストール中のサードパーティソフトウェアオプションの明確化

  23. 23

    新しいエンティティのみをカスケード永続化する方法

  24. 24

    VHDLでのコンポーネントのインスタンス化とエンティティのインスタンス化

  25. 25

    「XML」エンティティと「XMLスキーマ」エンティティの違いは何ですか?

  26. 26

    エンティティを永続化すると、結合列を持つエンティティのカスケードに関するエラーが2回回避されるのはなぜですか

  27. 27

    パッケージSpringJavaのエンティティのリスト

  28. 28

    BlueZユーティリティのインストール

  29. 29

    GoogleTestテストフィクスチャの明確化

ホットタグ

アーカイブ