• 依存が外側から内側にしか向かない
    • 内側は、外側について何も知らない
  • 中央から順に、
    • Enterprise Business Rules : Entities
      • 他の何にも依存しない、システムの普遍的なドメイン
      • クリーンアーキテクチャでは値オブジェクトもここらしい
    • Application Business Rules : Use Cases
      • エンティティに関するデータの入出力をどうにかする?
    • Interface Adapters : Controllers / Gateways / Presenters
      • 外/内側からもらってきたデータを、その逆(内/外)側が使えるような形に加工する
    • Frameworks & Drivers : DB, UI, etc…

例:

  • UI層はControllerからユーザーのリストを受け取ってHTMLに加工する
    • Controllerは、自身が返却したユーザーのリストがHTMLに加工されることを知らない
  • Controllerは何らかの方法でデータを取得する
    • どこから取得するかは知らない(ファイルかもしれないし、データベースかもしれない)
      • これはどういうこと?DB層とかからDIされるから、ということ?

参考