オブジェクト指向

読み

おぶじぇくとしこう

意味

  • プログラムをオブジェクト(データと処理をまとめた単位)の集まりとして設計するプログラミングパラダイムでOOPとも呼ばれる
  • カプセル化・継承・ポリモーフィズムの3大原則を基本とし再利用性・保守性・拡張性を高める設計思想
  • Java・C++・Python・C#などの主要言語がサポートし現実世界のモデルをコードで表現しやすい特徴がある

比喩

レゴブロックのようなもの。各パーツ(オブジェクト)を組み合わせて大きな作品を作り部品の再利用も簡単。

語源

object-oriented = オブジェクト指向の。object(物体・対象)+ oriented(志向の)

例文

  • Userクラス・Productクラス・Orderクラスをオブジェクト指向で設計しECサイトのドメインモデルを構築した
  • 継承を使ってAnimalクラスからDog・Catクラスを派生させコードの重複を削減した
  • カプセル化でクラスの内部実装を隠蔽しpublicなインターフェースだけを公開して変更に強い設計にした

よくある勘違い

  • すべてをオブジェクト指向で書くべきだと思うこと → 関数型プログラミングの方が適切な場合もある
  • 継承を多用しすぎること → 継承よりコンポジション(組み合わせ)を優先すべき
  • オブジェクト指向は難しいと敬遠すること → 基本原則を理解すれば実は直感的

関連用語