オブジェクト指向プログラミングの具体例(入門編)

前回の続きです。前の回ではオブジェクト指向として一番重要なのが「メッセージング」という概念だと記述しました。そして、作るべきオブジェクトの単位として

「現実をモデルとし、メッセージングを行える単位にまで整理した構造体」

だと(勝手に)定義しました。
現実をモデルとするのは、それが直感的にわかりやすいからですね。
そこで今回と次回を通じて、上記を想定にしてどのようなクラスを作るべきかを最初は簡単な例から考え、次にもう少し複雑なものを想定して考えていきます。

ちなみに、ソースコードはほとんど記述しません。ロジック部分は、オブジェクト指向とはほとんど関係がないからです。なので主にクラス図を使って説明していきます。 続きを読む

新人さんにオブジェクト指向について教えたときの説明

最近、新人プログラマさんにオブジェクト指向について教えたりする機会があったのですが、改めて自分の中でも整理する意図も兼ねてブログに説明した内容を記述します。

最初に断っておくと、(きっと多くの人もそうだと思うんだけど)ぼくも誰かから「きっちりした正解を学んだ」わけじゃありません。いろんな本やWebの記事を読んだり実際コーディングしたりしながら「たぶんこんなもんなんだろう」と自分なりに解釈した派です。
なので、ぼくも大いに誤解している可能性もあります。その際は指摘してもらえると嬉しいです。

※そもそも「オブジェクト指向」自体がなり曖昧な表現だとも思っており、いくらでも解釈できるが故に「これが正解!」といえるようなものはないんじゃないかなとも思ってます。

さて、オブジェクト指向とはなにか。
誤解を恐れずに自分の解釈を言えば、それは「整理術」です。それ以上でも、それ以外でもありません。
以下でそう思う理由なども含めて説明していきます。 続きを読む