1

データ層はユーザーの入力を検証しますか? それともデータを保存するだけですか?

例 - ユーザーは自分のプロファイルに電子メールを追加します。

これは正しいですか?

プレゼンテーション層 - 電子メール形式が有効であることを確認します (クライアント側)

ロジック層

  • 電子メール形式が有効であることを確認します (もう一度?)
  • 電子メールの種類を設定します (つまり、プライマリ電子メールですか?)
  • メールの保存が許可されているレコードの制限を確認する

データ:

  • メール記録を保存する

論理:

  • プレゼンテーション層に通知を送信
  • 電子メールで通知を送信
4

2 に答える 2

2

すべてのレイヤーには、外界との独自の一連のコントラクトがあります。

以前のレイヤーで行われた可能性があるという仮定に基づいて、何かをしたり、したりしないでください(検証など)

ただし、DataLayer は電子メール アドレスの形式を検証しません。その責任の一部ではありません。特定の長さの文字列であるという事実を除いて、電子メールがどのように見えるかを理解することさえできません。

于 2011-09-29T07:07:12.600 に答える
2

ノート :

データ層のタスクは、データベースに接続し、論理層で行う必要があるよりも追加の検証ロジックを適用する場合に CRUD 操作を実行することです

アーキテクチャの変更

プレゼンテーション層 -

  • メール形式が有効であることを確認する (クライアント側)

ロジック層

  • 電子メール形式が有効であることを確認します (もう一度?) -再度行う必要はありません
  • 電子メールの種類を設定します (つまり、プライマリ電子メールですか?)
  • メールの保存が許可されているレコードの制限を確認する

データ層:

  • データベースへの接続を許可する
  • CRUD 操作を実行する

データストア、つまりデータベース

  • メール記録を保存する

戻る

データレイヤー

  • 正しく挿入されたロジック層データを通知

ロジック層:

  • データが適切に挿入/更新されたことをプレゼンテーション層に通知する
  • データが適切に挿入/更新された場合は電子メールで通知を送信し、そうでない場合はエラーをログに記録します
于 2011-09-29T06:57:17.100 に答える