部品をつなげる |
||
|
パソコンを分解したり組み立てたりしたことはありますか?やってみるとわかるのですが、たいがいのパソコンは同じような部品でできています。Mac でも、Windows でも、似たような構成の機械で動いているのです。たとえば次のような部品があります。 |
||
|
||
|
実際にはほかにもいろいろありますし、機種によって多少の違いはありますが、だいたいこんな感じです。どうしてそうなっているのでしょう?わざわざ部品に分けなくても、全部の機能をいっぺんに実現するような機械にすれば良さそうだし、もしかしたらその方がコンパクトになったり性能が良くなったりするかもしれません。 |
||
|
部品に分けるのは、その方が効率が良いからです。まず部品を作っておいてから、それらを組み合わせて製品にする、というやり方の方が作りやすかったりコストがかからなかったりします。それに、部品の仕様をしっかり決めておけば、あとで故障した部分だけを交換したりできます。ハードディスクを容量の大きいものに取り替えたりできるのもそのおかげですね。 |
||
|
そういうわけで、ほとんどのものは部品で構成されているのです。これはパソコンに限った話ではありません。テレビも、換気扇も、本棚も、腕時計も、プレステやロクヨンも、みんな部品で構成されています。臓器も部品だとすれば、我々人類も部品で構成されているといえます。また、それぞれの部品もより小さな部品でできています。 |
||
|
同じように、ソフトウェアも部品で構成することができます。あらかじめ全体を部品(サブシステム)に分割し、それぞれの部品を完成させてからそれらを結合するようにします。そしてほとんどの場合、その方が全部をいっぺんに作るよりも効率的なのです。で、既に皆さんもそのようにしているはずです。 |
||
|
現在のソフトウェア開発のニーズはどんどん高度で複雑になってきています。複雑なシステムの全体像を詳細に把握するのは、よほどの天才でもなければ無理です。無理なので、部品に分割するしかないわけです。全体像は「何となくこんな感じ」ぐらいにしか把握できないし、それで十分です。 |
||
|
その代わり、部品は完璧に作り上げなければなりません。そうしないと組み立てたときに動きませんからね。そこら辺がきっちりできるかどうかはエンジニアの職人芸にかかっています。 |
||
|
部品を完璧に作って、それらをつなげて全体を構成する。ここまでできたらもう完成です。ただ部品を作っただけのはずなのに、気がついたら全体ができあがってしまっています。こういうのを初めて体験すると、やや拍子抜けな感じになります。でもそれで良いのです。あとはスイッチを「ポンッ」とやるだけです。 |
||
|
こういうやり方が、要するにオブジェクト指向です。 |
|
|
||||
(「コーディングの向こう側」は2000年4月から2001年5月にかけて作成されたコンテンツです。)