Stratified Design
書籍『Grokking Simplicity』によれば、「関数の抽象レベルを揃えてレイヤ化し、下のレイヤに依存する関数は、それらの呼び出しのみ行う(のが望ましい)設計手法」である。以下がメリットになる。 変更容易性
下位層の置き換えによって機能変更が実現できるため (各層が実装の詳細を持っていると修正箇所の特定が難しくなる)
読みやすさ
ざっくりした仕様を把握したければ、高抽象のレイヤの関数を読むだけで良い
再利用性
レイヤードアーキテクチャとの比較
類似のパターン
Kent Beckの『実装パターン』に載っているComposed Methodパターンは、Stratified Designとほぼ同じことを言っている。
Strataを作るポイント
ビジネスルールのための条件分岐
データの内部構造(特にコレクション)の操作