アプリケーションの階層化


1. [推奨] デフォルトでは、図の上位層は下位層に依存しており、矢印の関係は直接依存できることを示しています。たとえば、オープン インターフェイス層は

# に依存できます。 ##Web 層、またはサービス層に直接依存することも可能、など アナロジー:

QQ截图20170211103016.png

  • オープン インターフェイス層: サービス インターフェイスは次のことができます。直接カプセル化して RPC インターフェイスに公開する、Web 経由で http インターフェイスにカプセル化する、ゲートウェイ制御

    層など。

  • #ターミナル表示レイヤー: 各ターミナルのテンプレートは表示レイヤーをレンダリングして実行します。現在、主なものは、ベロシティ レンダリング、JS レンダリング、JSP レンダリング、モバイル ディスプレイ レイヤーなどです。
  • #Web 層: 主に転送アクセス制御、各種基本パラメータの検証、または非再利用サービスの単純な処理など。
  • サービス層: 比較的特殊なビジネス ロジック サービス層。
  • マネージャー層: 以下の特性を持つ一般的なビジネス処理層:
  • 1) サードパーティ プラットフォームによってカプセル化された層の場合、前処理は結果と変換例外情報を返します;
2) キャッシュ ソリューションやミドルウェアの一般的な処理など、サービス層の一般的な機能をシンクします;

3) DAO 層と対話します、共通DAO ビジネスへの機能のカプセル化。

DAO レイヤー: データ アクセス レイヤー。基盤となる MySQL、Oracle、および Hbase とデータをやり取りします。

外部インターフェイスまたはサードパーティ プラットフォーム: 他の部門の RPC オープン インターフェイス、基本プラットフォーム、および他社の HTTP インターフェイスを含みます。

2. 【参考】(階層型例外処理プロトコル) DAO層では多くの種類の例外が発生しますが、

細かい例外でキャッチすることは不可能です。 ) メソッドを実行して new DAOException(e) をスローすると、ログを出力する必要はありません。

ログはマネージャー/サービス層でキャプチャされ、ログ ファイルに記録される必要があるためです。同じサーバーが再度ログを記録する場合、パフォーマンスとストレージの無駄。サービス層で例外が発生した場合、ログ情報をディスクに記録し、パラメータ 情報を可能な限り含める必要があります。これは、犯罪現場を保護することに相当します。 Manager 層とサービスが同じマシンにデプロイされている場合、ログ記録方法は DAO 層の処理と一致します。 別々にデプロイされている場合、ログ記録方法はサービスと一致します。 Web レイヤーは例外をスローし続けることはできません。Web レイヤーはすでに最上位レベルにあるため、例外の処理を続行する方法はありません。この例外によりページが正常に表示されなくなることに気付いた場合は、 その場合は、わかりやすいエラー ページに直接ジャンプし、わかりやすいエラー メッセージを追加してみてください。オープン インターフェイス層は例外を処理し、エラー コードとエラー メッセージの形式で例外を返す必要があります。 3. 【参考】階層型ドメインモデル仕様書:

  • DO (データ オブジェクト): データベースのテーブル構造に 1 対 1 で対応し、データ ソース オブジェクトを DAO 層を通じて上向きに送信します。

  • DTO (データ転送オブジェクト): データ転送オブジェクト、サービスおよびマネージャーによって転送されるオブジェクト。

  • BO (ビジネス オブジェクト): ビジネス オブジェクト。サービス層によって出力できるビジネス ロジックをカプセル化するオブジェクト。

  • QUERY: データ クエリ オブジェクト。各レイヤーは上位レイヤーからクエリ リクエストを受け取ります。注: 送信に Map クラスを使用する では、3 つ以上のパラメーターを含むクエリのカプセル化が禁止されています。

  • VO (ビュー オブジェクト): 表示レイヤー オブジェクト。通常は Web によってテンプレート レンダリング エンジン レイヤーに送信されるオブジェクトです。