設計において何をオブジェクト化するか、について考えることがあったのでメモ。 何をオブジェクト化するか 通常、設計においてはソフトウェアの仕様から「何をオブジェクト化するか」を考えます。「オブジェクト化する」とは、ソフトウェアの主要な関心事に名前をつけ、責務を分配し、他のオブジェクトとの協調関係を定義する行為です。 もしここで、アプリケーションにおいては重要であるにも関わらず無視される関心事が出てくると、その関心事は名前をつけられたり明確な責務を定義されることもなく、ほかのコードに埋もれます。これにより、 変更容易性の低下 可読性の低下 テスト容易性の低下 を引き起こします。つまり、保守性という面での品質が低下するわけです。 重要な関心事は変更頻度が高いことが多いので、保守性の低下は禍根を残します。 なので、重要な関心事はきっちりとオブジェクト化することが大事です。 何をオブジェクト化しない