プログラマに近いような事をやっていると まぁ、プログラムの勉強をしないとなーと思う事が多々。
その過程の中で確実に出てくる オブジェクト指向の文字。
山のように出ている書籍は これがいかに便利で楽なものかを歌っている。 そして分かりやすく書いてある。
が、相変わらず良く分かっている人が少ないのはどういうわけか。 ……いや、私だけかもしれないけどさ。 とりあえず私は躓いています。
んでまぁ、私なりに何で分からないのか考えてみました。 Javaが流行りだした当初はともかく 最近の説明はちゃんとしているので 幾つかの参考書が言うように 世間の説明が下手というわけじゃないとも思うので。
一つ、例え話を。 あくまでプログラムやらオブジェクト指向やらとは 全く関係のない例え話です。 概念やらを説明したものではないので勘違いしないでください。
本棚とかそういうものが無い世界があったとしてですね。
A君は大量に本を持っていました。 大量の本は床に平積みされていて もはやどれがどれやらさっぱり分かりません。 目的の本を探すのも一苦労です。
ところで、この問題は世界中が抱えていました。 世界の本という本は、平積みされており 殆どの人が目的の本を探せませんでした。
そんな時、1人の天才が『本棚』を考えだしました。 本棚に並べられた本は 探し出しやすく、本棚は大人気。 探し出しやすい本の並べ方を考えた理論も沢山生まれました。
本棚の利便性もあり、 本はますます増える一方。 図書館や漫画喫茶といった本が集中している施設も沢山できました。
そのため、本が増えすぎて 本棚から本を探すのが大変になってきました。 平積みのときとは比べ物にならないくらい楽に探せるけど やっぱり探すのが大変、と。
そんな時、1人の天才が『検索システム』を考えだしました。 本のタイトルなどの情報と 置かれている場所を簡単に調べる事の出来るシステムです。
これまた、非常に便利なシステムで 爆発的な人気が出ました。 検索システムの使い方を説明した物も沢山でてきて 一大ブームになりました。 A君も大量の本を管理する優れた手法を知ることになり 非常に助かりました。
さて、あるとき『本棚』や『検索システム』を 全く知らないB君が、本をたくさん購入するので 本棚や検索システムの勉強しようとしました。
A君に検索システムの使い方を尋ねたところ 最初から大量の本で説明すると分かりにくいから 最初は3冊の本の管理方法について説明しようと言うわけです。
3冊の本を3つの本棚に分け、更に検索システムに登録して――。
こまごまと説明された後、B君は思うわけです。 本なんて、その辺に置いとけばいいんじゃないの? 本棚とか邪魔だし、検索システムの登録とか使い方面倒くさいよ。
相変わらず本棚と検索システムがどれだけすばらしいか 熱く語るA君に別れを告げ この二つを良く知るC君に再度使い方を尋ねるわけです。
C君曰く、A君の説明は混乱しやすく分かりにくい。 まずはサンプルとして5冊の本でこの概念を――
こまごまと説明された後、B君は思うわけです。 やっぱり本なんて、その辺に置いとけばいいんじゃないの? 本棚とか邪魔だし、検索システムの登録とか使い方面倒くさいよ。
以下、ループ。
理屈の上ではどれだけ便利か分かるけど 実際にやってみると非常に面倒くさい。 便利にするために考えられた手法は シンプルな例で考えるとデメリットにしか見えない。
数が少ないから、従来の平積みでいいんです。 数が多いから意味のある手法を 複雑だからといって数の少ないモデルで示したら それって本当に意味があるか分からないでしょ?
と、まぁオブジェクト指向の話にもどれば この考え方はある程度の規模のものを 効率よく使う技術であって main関数一つあれば数行で表記できるものなら オブジェクト指向なんて考えず、そのまま記述するわけで。
まぁ、グデグデ書きましたが シンプルな例で表記しているがゆえに 分かりにくくなっている側面もあるのではないかという話。
便利だとは思うんですが。
|