2007-07-04

インターフェイス

インターフェイスという言葉をご存知ですか?
ソフトウェア開発に従事する方は、ご存知ですよね。
そうでない方は、言葉は聞いたことあるけれども、意味は知らないという方が多いかもしれませんね。

でも、実はインターフェイスというのは別にコンピュータやソフトウェアだけにあるものではないのです。
オブジェクト指向を考えていく上で、かなり重要な言葉ですので、カテゴリ発展編の最初は、この話題について考えておきたいと思います。

コンテンツ

  1. インターフェイスって?
  2. たとえばパソコン
  3. 他にもいっぱい
  4. それがどうした?

インターフェイスって?

インターフェイスを英和辞典で調べてみると、「境界面」とか、「共有領域」とかいう説明が出てきます。
言ってることはわかるけど、具体的には何を指すんだ?というかんじですね。
Wikipediaで検索してみると、説明の冒頭に「インタフェース(英語:interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す」と書いてあります。
前半の「ものごとの境界となる部分」というのは、英和辞典の説明と共通する部分ですね。
で、後半を見ると「境界でのプロトコル」…プロトコル?
新しい意味不明用語が出てきました。
プロトコルってなんでしょう?
えー、プロトコルとは、「規定」「手順」「約束事」という意味です。
つまり、インターフェイスとは「ものごとの境目と、そこでの約束事」ということになります。
では、現実ではどのようなモノを指すのでしょうか?

たとえばパソコン

パソコンというのは、電気回路やなんやかやが(たいていは)金属とかなにかプラスチックっぽい箱に入ったものですね。
「いやいや、液晶やブラウン管のモニタってものもパソコンの一部だろ」と思ったあなた。
あなた、いいとこ突いてます。
モニタというやつは、パソコンとあなたの境界です。
あなたがパソコンとやり取りするとき、パソコンはモニタを通じてあなたにいろいろな情報を見せてくれます。
これ、インターフェイスです。
「ちょっと待て、キーボードは?マウスは?」と思いました?
それもインターフェイスです。
あなたがパソコンとやり取りするとき、あなたはそれらのモノを使って、パソコンに指示を送ってるわけです。
つまり、スピーカーも、電源ランプも、ディスクアクセスランプも、あなたとパソコンがやり取りに使ってるものは、みんなインターフェイスなのです。
さてさて、インターフェイスには全てプロトコルがあります。
約束事ですね。
モニターには、今パソコンの中で起こっていることを画像としてあなたに提供するという約束事があります。
パソコンが今グラフを描くことだけに専念しているのに、モニターには何の関係もないゴッホの絵とか表示されてたら、困りますね。
あなたには、今何が起こっているのか知るすべがなくなっちゃいます。
マウスカーソルを動かしたかったらマウスを動かせばいいし、何かの文字を入力したかったら、キーボードの対応するキーを押せばいいというのもプロトコルです。
こういうお約束の上に、パソコンのインターフェイスは成り立っているのです。
インターフェイスとは、お互いがコミュニケーションをとりあう場所と、約束事のことなのです。

他にもいっぱい

身の回りを改めて見回してみてください。
細かいところからいくと、スイッチやボタンなどは、全てインターフェイスです。
人と人とが会話する、その声も、表情も、身振り手振りも全てインターフェイスです。
大きなところへいくと、何かの企業が広告をうって誰かに見てもらう、つまり広告―昔ながらのホーローの看板、テレビCM、レーサーやスポーツ選手の服に貼り付けられてる広告、競技場の壁にあるでっかい広告―あれも全部インターフェイスです。
Webは、たくさんの人が何かの情報を発信し、たくさんの人が何かの情報をゲットする、巨大なインターフェイスそのものです。
そして、これら全ては何らかの約束事があるから、適切に意味を理解したり、指示を与えたりできるのです。
私たちは、少しでも何かとやり取りしようとするとき、必ず何らかのインターフェイスを利用します。
つまり、全てのオブジェクトはインターフェイスを持ち、それを使ってやりとりしているのです。

それがどうした?

はいはい、インターフェイスって何かについては、おわかりいただけましたでしょうか。
でも、これだけでは「それがどうした?」ってかんじですよね。
この利点を理解するには、ポリモーフィズム―ポリモルフィズムと言われたり、多態性と訳されたりもします―を理解する必要があります。
ですが、これはこれでちょっと長い話になりそうですので、回をあらためて考えてみたいと思います。

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...