オープン・クローズドの原則
修正を最小限に抑えつつ、拡張できるようにする
変更が発生した場合に既存のコードには修正を加えずに、新しくコードを追加するだけで対応できるようにする
既存のメソッドに振る舞いを追加することは簡単にできますが、多くの場合において、正しい方法ではない。
保護されるべき対象という関係から、依存関係を考える。
コンポーネントAがコンポーネントBの変更から保護されるべきならば、コンポーネントBからコンポーネントAへ依存すべきである。
Viewを変更したときに、Presenterを変更する必要をなくしたい
Interactorを守りたい
これを中心となる関心事を処理している
だから、Interactorは他のコンポーネントの変更に依存しないようにする