
076
処理フローロジックです。ビジネスロジックの中でもアプリケーション
ロジックと呼ばれます。処理フローロジックは複数のオブジェクトを適
切に協調させる調整役と捉えることができます。
一般的に、中核ロジックと処理フローロジックは役割を明確に分けて
設計した方が、コードの見通しは良くなります。例としてビジネスロ
ジック層の話をしましたが、このことはどの層でもどの抽象レベルでも
言えることです。
たとえば、プレゼンテーション層でクライアントからのリクエストを受
け付けるコントローラは処理フローロジックです。コントローラはビジネ
スロジック層のサービスが提供する中核ロジックを呼び出し、画面の描
画にはビューが提供する中核ロジックを呼び出します(サービス自体は処
理フローロジックですが、コントローラからは背後は隠蔽されているので
中核ロジックを提供するコンポーネントとして見えます。図2.2.5参 照 )。
フラクタル構造
SRPに従いソフトウェアの構成要素に単一の役割を持たせることで、
コードの凝集度が高くなります。それによって要素同士の不要な依存関
係が減るため結合度は低くなります。
クラスレベルで考えると、凝集度が高いとはクラスが自分の役割を果
たすのに必要な変数とメソッドだけを持ち、不要なものは混じっていな
いということです。また、中核ロジックを担うクラスと処理フローロ
ジックを担うクラスが存在します。
一つ抽象レベルを上げてコンポーネントレベルで考えると、凝集度の
高いコンポーネントはその役割を果たすのに必要なクラスだけで構成さ ...