Dual-Interface & Adapter
良い分離面設計をするために、各coreがownershipもってinterfaceを定義する. interface間をadapterでつなぐ.
どう分割面を設計するか、の指針 (何に基づいて分割するか、は扱わない.)
domain - interface <= adapter => 外部API
と同じ感じで、coreを自分で定義したのちに必要なinterfaceを自分で定義.
- 自己依存なので別Entityの存在を前提としなくてよい -> 開発時に前提とするコードがなくてすむ
- 自分でinterfaceを切るので自分に必要なものが過不足なく切れる
- 変更部分をAdapterに押し付けられる
- (coreを責任範囲として、adapterを協業部分にできる)