自分より変更されにくいものに依存する
プログラムはどうやっても何か他のものに依存することになる
しかし、依存する方向は割と恣意的に操作することができる
どうしても依存しないといけないときに、理想的な方向で依存するようにしたい
多くのものから依存されているものに変更を加えると、変更が必要な箇所が広範囲に波及する
これが最も大事なことであり、これのために色々工夫をしている
「よくあるアプリケーションの構成要素」と「変更のされやすさ」に注目し、体系立てている
そのルールに則ることで自然に依存関係が1方向になるので、後々修正が楽になる
Aが既に存在し、Aと関連のあるBの作成時に、
AをBに依存させるか、BをAに依存させるかの選択ができる
このときに、「どちらが変更されづらいか」を鑑みて、より変更されづらい方を依存される側にすればいい
A, Bはclassのこともあれば、データ型のこともあるmrsekut.icon
一般的に見られる性質を利用する
具象クラスは、抽象クラスよりも変更されやすい
「依存方向は恣意的に選択できる」ことと、「抽象クラスの方が安定している」ことを1つの原則として説明している
これは、「変更されにくいが、変更された場合は修正箇所が広範囲に及ぶ」という点を妥協している
変わりやすいものには依存しないようにする
逆の明言
変更されたとて、その変更がそこで閉じていれば特に問題は起きない
どのようにして「へんこうされづらさ」を判定するのか?
経験?一般的な性質?実際に計測する?
一般的な性質によるもの
具象クラスと抽象クラスの比較は
プログラミング言語やフレームワークは変更されづらい
どのようにして、変更されにくいものを作るか?
そいつ自身が依存しているものが小さければいい
よりprimitiveであればいい