オブジェクト指向とは何か

OOとは、それぞれの役割に応じて適切にクラスを分割することであり、データと振る舞いを単純に一緒にすることではないと思いますが、まぁいいでしょう。

上記の記事自体はごもっともという感じなんだけど、これはどうかなぁ。なんとなく、それは「オブジェクト指向設計」のことであって、オブジェクト指向プログラミングのことじゃないよな。オブジェクト指向プログラミング、それ自体は構造化プログラミングの次、すなわち単なるプログラムの分割単位のことであり、「それぞれの役割に応じて適切にクラスを分割すること」とかそういうことは結果的に現れるメリットのひとつに過ぎないのではなかろうか。

そういう意味では、オブジェクト指向とは「データと振る舞いを単純に一緒にする」ことであり、それ以上は単なる主義主張にすぎない。指向という言葉が悪いのだろうか*1

*1:どこかで指摘されていたが、オブジェクト指向は英語ではobject orientedという修飾語となるため、必ずOOP, OOA, OODとなり誤解には繋がりにくいそうだ。