スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.5913
クリーンアーキテクチャに関する記述として不適切なものはどれか。

【正解の解説】

ビジネスロジックを含むエンティティ層は、データベースやUIなどの外部フレームワークの詳細に依存するように設計する。

クリーンアーキテクチャでは、最も重要なルールである「依存性の方向」として、中心にあるビジネスロジックが外部のデータベースやUIなどの変更に振り回されないよう、外側から内側へ向かって依存させます。したがって、エンティティ層が外部に依存するのではなく、外部がエンティティ層に依存する構造にするのが正解であり、本問の記述は逆になっています。

スポンサーリンク

【その他の選択肢の解説】

ソフトウェアのアーキテクチャ全体を通して、依存性の方向は常に円の中心に向かって単一方向に制限する。

この原則は、人間関係で例えるなら「社長(ビジネスロジック)は平社員(外部ツール)の顔色を伺わず、平社員が社長の方針に合わせる」という状態を作っています。これにより、データベースがオラクルからMySQLに変わったり、画面がWebからスマホアプリに変わったりしても、一番大切なビジネスロジックを一切書き直さずに済むという大きなメリットが生まれます。

ユースケース層はアプリケーション固有のビジネスルールを扱い、外部の変更が内部に及ぼす影響を隔離する。

会社組織に例えると、ユースケース層は「各部署の業務マニュアルや具体的な仕事の進め方」を担当する中間管理職のようなものです。外部の顧客(UI)からの無理な要望や、使う文房具(データベース)が変わったとしても、業務の根本的なルールを守り、内部の混乱を防ぐ防波堤の役割をしっかりと果たしてくれます。

フレームワークやデータベースは円の外側に配置され、ビジネスロジックの詳細な実装に依存しないように構築する。

家を建てる時に例えると、ビジネスロジックは「家族が快適に暮らすための間取りや設計図」であり、データベースやフレームワークは「壁紙の色や使う家具」のようなものです。家具が変わっても家の構造自体が倒壊しないように、変わりやすい詳細な実装はすべて外側に追いやり、中心の価値を守るのがこの設計の狙いです。