備忘録のため、レイヤパターンについてまとめる。
レイヤパターンとは??
レイヤパターンとはアーキテクチャパターンの1つ。レイヤーパターンはシステムを階層化し、上位レイヤが下位レイヤの提供する機能を利用することで、各レイヤの作りを単純化していく考え方。ここでポイントなのが、各レイヤはそのレイヤが依存する直接下位レイヤ以外を知る必要がない。例えば下図では、レイヤ2はその下位レイヤであるレイヤ3に依存する。レイヤ2が意識するのはレイヤ2自身とレイヤ3のみであり、上位レイヤであるレイヤ1やレイヤ3より下位のレイヤを意識する必要がない。
このように設計することで各レイヤの責務を明確にすることができ、各レイヤがその責務を全うできるように開発するだけで、システム全体がうまく動かすことができる。
webアプリケーションでの一般的なレイヤ
webアプリケーションのレイヤの分離の仕方は下図の分け方が一般的な分け方になっている。
プレゼンテーション層
プレゼンテーション像とは、システム利用者とのインターフェースを担当するレイヤ。Webブラウザを通してユーザからの入力を受け付けて下位レイヤであるビジネスロジック層へ渡し、その処理結果を再びWebブラウザへ表示させたり、画面遷移を制御したりといったことを担当するのがその役目。
ビジネスロジック層
ビジネスロジック層は、アプリケーションが実現すべき固有の処理を実行するためのレイヤ。ビジネスロジックは、ユーザが入力した情報をプレゼンテーション層から受け取り、必要に応じてデータアクセスそうを通じてデータベースを利用し、処理を実行する。処理結果は再びプレゼンテーション層へ返す。
データアクセス層
データアクセス層は、ビジネスロジックとデータベースの仲立ちを行うためのレイヤ。データベースへアクセスするためには、多くのコードを記述しなければならない。このような処理をビジネスロジック層から切り離し、データベースへの細かなアクセス手順を意識せずとも利用できるようにすることが、データアクセス層の役割となる。
MVCモデルとの関係
MVCモデルもアーキテクチャーパターンの1つだが、レイヤパターンと相反するものでなく、下図のような関係である。
コントローラとビューがそのままプレゼンテーション層となり、モデルはビジネスロジック層とデータアクセス層に分かれる。Webアプリケーションで頻繁に発生するデータベースへのアクセス処理をデータアクセス層に分離することで、ビジネスロジック層とデータアクセス層、それぞれの開発がよりシンプルに行えるようになる。
参考
プロになるためのWeb技術入門