レイヤーパターン
要素
関係
「レイヤーAは、レイヤーBの使用を許可されている」
「レイヤーAはレイヤーBに依存する」
規約
全てのモジュールは1つのレイヤーに割り当てられる。
上位のレイヤーは下位のレイヤーを使用することができるが、その逆はできない。循環依存は許されない。
自分の直下のレイヤーのみ使用するよう、制約を強化することもできる。
強み
保守性、移植性、再利用性、テスト容易性が促進される。
設計の修正が容易。
概念的に実装が簡単。コードでレイヤーが表現できる。
弱み
各レイヤーは最上位レイヤーと最下位レイヤー間の抽象に過ぎない。抽象的なレイヤーの追加は複雑さを増やし、パフォーマンスに悪影響を与える。
適切なレイヤー設計がされないと開発が困難になる。例えば;
レイヤーが多すぎる。あるレイヤーの責務が明確でない。
レイヤーが少なすぎる。抽象が漏れている。