源氏物語でわかる「オブジェクト指向」の恋物語

オブジェクト指向

プログラミングに関わる人なら誰でも聞いたことがあるであろう言葉です。

今日はぼくなりの「オブジェクト指向」に対する考え方を源氏物語を例に書いてみます。

ちなみに、ぼくの目的はあくまで「オブジェクト指向」をわかりやすくイメージしてもらうために書きます。
源氏物語で例えるというのは挑戦です。
源氏物語に対する理解の仕方がまちがっていたらその時は本当に申し訳ありません。


オブジェクト指向」を書くにあたり、以下のことを取り上げます。

オブジェクト

オブジェクトは、

紫式部」「源氏物語」「恋」「平安時代」「桐壺」「宇治十帖」

などのことです。

オブジェクトは「もの」です。

もの」には「紫式部」など物体としてあるものと、「恋」「平安時代」などの物体はないけど存在するものがあります。

これがオブジェクトです。

クラス

オブジェクトの間で共通の要素をもったグループのことです。
太字がいわゆるクラス。

光源氏、桐壺帝、柏木、夕霧→
藤壺の宮、葵の上、六条御息所、紫の上→
光源氏、桐壺帝、柏木、藤壺の宮、葵の上、六条御息所、紫の上→人間


などのようになります。

光源氏、桐壺帝、柏木、夕霧はという点で共通の要素を持っています。

男←クラスの名前
あれが付いている←持っているデータ
けまりをする←クラスがすること

このくくりのことをクラスといいます。

継承

光源氏は男で、藤壺の宮は女ですが、ふたりとも同じ人間で「食べる」「寝る」「恋をする」などのことをします。

つまり、「人間」だということで「食べる」「寝る」「恋をする」などの要素を持っているということです。

しかし、「人間」だからといって、けまりはしません。藤壺の宮はけまりをしません。

要するに、具体的なクラス(男や女)はより一般的なクラス(人間)の要素を持っているけど、
一般的なクラスが具体的なクラスの要素を持っているとは限らないということです。

具体的なクラスは一般的なクラスの性質を引き継いでいる。

これが継承です。

カプセル化

桐壺帝にとって、右大臣家の勢力の伸びをおさえる戦略のために、光源氏左大臣の姫君の葵の上と結婚させます。
これは、政治的な都合による政略結婚といえるものでした。

桐壺帝は、この二人がどういう気持ちを抱いていようが、政略結婚のため、結婚させることにした。
すなわち、彼らが結婚生活をするには毎日愛し合いなさいとか、そういった細かい指示は出さず、
「結婚」という指示だけを出して、あとは当人たちに任せたのです。

光源氏と葵の上に結婚してねとお願いするとき、その後の結婚生活については当人たちだけが知っているようにして、結婚を頼む桐壺帝は、その中身を知らないようにする。
(実際にはそんなことはないですが、ここは例示です)

桐壺帝は自分に都合のいいカップルを成立させることがよかった。

例えば左大臣家の姫君であれば必ずしも葵の上でなければならないなんてことはなかったように思われます。
それは、葵の上個人の資質を見込んだ縁組ではなく、政略結婚だったからです。


結果だけを求めて(政略結婚)、中身(光源氏と葵上の馬が合わない)を求めない。

それがカプセル化です。

ポリモーフィズム

光源氏はモテモテです。

光源氏が、「私を喜ばせてくれ」と宮中で大きな声を出して叫んだとします。
特定の誰かに対して言ったわけではありません。

しかし、光源氏のことを好きな女性たちは、なんらかのアクションをとるでしょう。

藤壺の宮であれば、桐壺帝に黙って光源氏に会ってあげるかもしれません。
葵の上であれば、いつもツンツンしてる態度からデレっとするかもしれません。
紫の上であれば、その気立ての良さから光源氏によく似合う衣を用意するかもしれません。
花散里であれば、光源氏とお話ししてほっとさせるかもしれません。


このように、光源氏が「喜ばせてくれ」と一声かければ、光源氏を愛す女性ならどんな人でも光源氏を喜ばせようとする。

この性質をポリモーフィズムといいます。




いかがだったでしょうか?
なんとなくのイメージをつかめましたでしょうか?

僕自身勉強中なので、備忘録として書いたようなものです。

ちなみに、この本がオブジェクト指向の考え方をマスターするための最高の本だと思います!
ぜひ買って読んでみてください!
この文章も、この本から参考にさせていただきましたので、著者に敬意を払いますとともに、御礼申し上げます。

オブジェクト脳のつくり方―Java・UML・EJBをマスターするための究極の基礎講座

新品価格
¥2,940から
(2011/11/22 05:54時点)


エンジニア 派遣