オブジェクト指向のメリット
役割ごとにオブジェクトを分けることで、実装がしやすくなる。
役割ごとにオブジェクトを分けることで、あとからコードを改変するときも、他のオブジェクトに影響しなくなる(コードの改変がしやすくなる)
オブジェクトとは、Rubyにおけるクラスやインスタンス、その他の値のことを意味します。例えば、文字列や数値、配列やハッシュなど、これまで値と呼んできたものも全てオブジェクトです。この他にも、Rubyでは様々な便利な特徴を持ったオブジェクトが用意されていて、組み込みライブラリという形やGemという形で使用できます。
クラスに含まれる値や処理のまとまり(= オブジェクト)を意識しながら、実装することがオブジェクト指向です。
オブジェクト指向はあくまで設計思想の1つ
オブジェクトを綺麗に切り分けなくてもとりあえず動くアプリケーションは完成してしまった
最初のアプリケーション設計から仕様変更が生じて、オブジェクトの切り分けを見直す必要がでてきてしまった
AさんとBさんの考えるアプリケーション設計が異なる
ということはよくあります。
オブジェクト指向を意識しないデメリット
オブジェクト内にさまざまな役割が入り組んでいて、どこに何があるのかわからない
1つの機能を変えた途端、その変更とは関係のないはずの機能が動かなくなってしまった
このような問題が生じるコードは、複雑に絡み合うことから「スパゲッティコード」と呼ばれます。