この記事について
- Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ際の覚え書きです
覚え書き
SOLID原則の単一責任の原則とは別ものである。
- SOLID原則の単一責任の原則は「ひとつの関数はたったひとつのことだけを行うべき」ではない。
- この原則はSOLID原則ではないだけで原則として存在する
モジュールを変更する理由はたった一つだけであるべきである。
↓
モジュールはたったひとつのアクターに対して責務を負うべきである。
- モジュールに複数のアクターに対する処理が存在すると同じ動詞でも計算方法が異なる変更が発生しやすい
- 異なるアクターへのバグが発生しやすくなる
- 似たような長い名前のメソッドが増える
アクターの異なるコードは分割するべきという原則だ。
これらの問題にはさまざまな解決策がある。いずれも関数を別のクラスに移動するというものだ。
- アクターの異なるメソッドをそれぞれアクターごとのクラスに移動する
- アクターごとのクラスを作成することで修正時の影響を小さく抑える
- アクターごとにクラスがあるとビジネスルールと実態が乖離してしまう場合はFacadeパターンを利用する
- ビジネスルールのクラスからアクターのメソッドを呼び出すようにする
まとめ
- クラスはアクターごとに作成して動作に一貫性を持たせられるようにしようと思った。
- アクターが複数存在するビジネスルールなどはFacadeパターンを利用して変更の単位は、呼び出し先のクラスで抑えられるように気をつけようと思った。