Object-Oriented Programming
オブジェクト指向プログラミングは、オブジェクト(データ+振る舞い)を中心に据え、カプセル化、継承、多態性を通じてコードを組織化するパラダイムである。
目的
現実世界の実体をオブジェクトとしてモデル化し、複雑なシステムを組織化する。
メカニズム
クラスがオブジェクトのテンプレートを定義し、インスタンス化でオブジェクトを生成する。カプセル化は内部状態を隠し、継承はコードを再利用し、多態性はインターフェースを統一する。Java/C#/Pythonは古典的なOOPであり、JSはプロトタイプベースのOOPである。近年は継承よりコンポジションが推奨される。
ユースケース
- コードの整理
- システムのモデリング
- 再利用しやすい設計(reuse)