negi111111 / CleanArchitectureUMLTemplate

CleanArchitectureでUMLを書く時のPlantUML用テンプレートです。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clean Architecture UML Template

Clean Architecture で設計する際にUMLを書くためのテンプレートです。

UMLは PlantUML を使用して出力可能です。

テンプレートで出力した画像

ClassSpec

Clean Architecture について

出典はこちらから。

内側に変化しにくいもの外側に変化しやすいものを配置する構造です。
Layer

もう少し具体的には

  • 外側(青色や緑色の層)
    • 使用するデータベースに関する処理やテーブルに格納するデータ構造
    • データの送受信やファイルI/Oなど他システムとの連携部分
    • 画面のレイアウトや操作方法などUI部分
    • 内側のデータを外側のデータに合致させるデータ変換処理
      • 外側のシステム等が変わればデータ構造も変わる可能性があるので外側に変換処理を置く
  • 内側(赤色や黄色の層)
    • システムで解決する内容
      • そのシステムで何を管理し、何を処理するのか、といった根本部分
    • 根幹となるデータ構造

また、上記を踏まえた上で 自分より内側にあるものしか知らない 様に実装を行う。
※要するに 自分よりも外側にあるクラス名やモデル名などをコードの中に書かない

もしも自分より外側に位置する処理を行いたい、といった場合には
インターフェースで処理を定義し、その処理を実装した外側のクラスを注入することで
処理を委譲する。

以下に「ダメな実装」と「良い実装」を示す。

NG

OK

About

CleanArchitectureでUMLを書く時のPlantUML用テンプレートです。