OOPのメリット(再考)

OOPのメリットの「データの抽象化」に関してもう少し分かりやすい表現を考えてみた。結局、以下のように考えられる。

  • 書く側(supplier側)は、複数のクラスを独立して実装できる
  • 呼び出し側(client側)は、違った型のクラス(のオブジェクト)を同じものとして扱える


結局、抽象化とは、中身は変化するが、書き方を同じ書き方ができるようにするというものである。
関連するものを、ばらばらに実装できるので書きやすいし、考えやすい。型の抽象化は偉大である。


Cでポリモルフィズムを表現するには、型の情報をオブジェクトが持つということと、関数ポインタがミソ。
また、JavaC#のBox化(参照型が必要なところで値型を使うと自動変換してくれる)は、参照型か値型かの情報をオブジェクトが持っていて、言語側が自動的に分岐してくれる。