オブジェクト指向プログラミング
## 特徴と謳っているもの
- カプセル化
- 継承
- ポリモーフィズム
## 実態
### カプセル化
C言語においても、ヘッダーファイルでの宣言でカプセル化可能。また、クラスのメンバについてはprivateにしても、外部からファイルでの確認ができるため、カプセル化はC言語の方が高い
### 継承
C言語でも関数ポインタを使って実現できていた。
ただ、多重継承は少し大変。
### ポリモーフィズム
こちらも関数ポインタを参照して可能だが、抽象インターフェースだけではなく、具象インターフェースも知る必要があるので、依存度が高い。
大変。
## まとめ
オブジェクト指向によって得られるもので非常に重要なのは、ポリモーフィズムの抽象インターフェースによってレイヤードアーキテクチャのコンポーネント同士の結合度を下げること(DIP)、またDIでテストをしやすくすること。