レイヤアーキテクチャの場合、ある層は、自分の直接下位の層にのみ依存し、それ以外の層には依存しないのが基本です。通信は、下位の層とデータをやり取りすることで行います。 それでは、このデータはどの層に属するのでしょうか。層に属することにすると、層間で通信するごとにデータをそれぞれの層のデータに変換する必要がでてきます。 例えば、A -> B -> Cという層間の呼び出しの場合、A層のオブジェクトはB層のデータに値を詰めてB層のオブジェクトを呼び出し、B層のオブジェクトは、B層のデータをC層のデータに変換して、C層のオブジェクトを呼び出します。戻り値の処理はこの逆です。B層のオブジェクトは、C層のオブジェクトの戻り値(C層のデータ)をB層のデータに変換して、戻り値として返します。かなり大変です。層が増えれば増えるほどこのオーバーヘッドは大きくなります。 そこで、データ部分は、どの層にも実装上依存
![ひがやすを blog:「レイヤモデルアーキテクチャ」](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)