1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

アーキテクチャのルールはどれも同じである

Posted at

CleanArchitectureが目指すルール

CleanArchitectureが目指しているものはシンプルである。
SOLIDの達成である

  1. 単一責任の原則 (single-responsibility principle)
  2. 開放閉鎖の原則(open/closed principle)
  3. リスコフの置換原則(Liskov substitution principle)
  4. インターフェース分離の原則 (interface segregation principle)
  5. 依存性逆転の原則(dependency inversion principle)

SOLIDを満たしかつ、どのようなアーキテクチャーにも具象化できる基本的なアーキテクチャとは下記「図3」のアーキテクチャである。

下位”層”モジュールは上位”層”モジュールを参照する。極めてシンプルな構造である。
注意しておきたいのは下位モジュール、上位モジュールではない。あくまで参照を中心としてとらえられるモジュール呼び出し構造である。

レイヤードアーキテクチャの問題点

レイヤードアーキテクチャは、下記「図1」のような参照構造をとる。参照を持っている以上、各個別のモジュールは単独では決して完成しない。Controllerは呼び出すServiceが完成しないとモジュールは独立して完成しない。
独立性の達成のためServiceを外部参照すれば、Serviceは自身が一般モジュールであるのに、さらに一般モジュールのGatewayを参照するというSOLIDからかけ離れたアーキテクチャとなる。

CleanArchitecture

クリーンアーキテクチャを「図1」に適用したものが「図2」である。
SOLIDの4と5の技法を使用し、「図3」の形のアーキテクチャ「図4」に変換している。

20250116.png

アーキテクチャのルールはどれも同じである

アーキテクチャのルールは、より不変かつ普遍な上位層モジュールを下位層モジュールが参照するアーキテクチャである。
この単純なアーキテクチャはSOLIDを満たしており(容易に満たすことができる)、CleanArchitectureは複雑なアーキテクチャを単純なアーキテクチャに変換するための技法である。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?