API(Application Program Interface)の「インターフェイス」のコンセプトをご教示ください。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/21 08:36:41
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:dev2 No.4

回答回数67ベストアンサー獲得回数26

ポイント100pt

API(Application Program Interface)の「インターフェイス」のコンセプト


プログラミングの文脈での「インターフェイス」は、
「ブラックボックス」または「カプセル化」とセットだと理解しやすいと思います。


たとえばパソコンにしても、いちいち内部の配線をつなぎ直したりせず、
ユーザはカバーの上からUSBなどのケーブルでPCと機器をつなぐだけで、
外付けHDDとかいろいろ機能を拡張できるようになっていますよね?

これをプログラミングでやるのがAPIです。


ライブラリなどの内部実装を知らなくても、
関数やメソッドの引数だけ知っていれば使えるようにします。

Windowsが提供するWin32APIや.NET Frameworkにしろ、
GoogleやAmazonが提供するWebAPIにしろ、
細かい仕様は違うものの、ブラックボックスという点では同じです。

他1件のコメントを見る
id:dev2

どのたとえでも、「本体のブラックボックスと、それを操作する公開されたAPI」という同じ構造です。

「ボンネットの下のエンジン」がブラックボックスで、スピードやガソリンのメーターがAPIです。
「レストランのボーイ」がAPIで、ブラックボックスが料理を作るキッチンです。

また、回答本文ではPCの比喩を使いましたが、家電一般についても同じことが当てはまります。
内部のモーターや配線がブラックボックスで、カバーの上のボタンやリモコンがAPIです。


そして、API(と本体のライブラリ)を作成するときは、何を公開するのかがポイントになります。

基本はユーザ視点で必要な情報を公開するようにします。
配線の電流や歯車の回転数などは隠蔽して、調節する温度やガソリン残量などを公開するわけです。

2015/08/18 17:21:50
id:torimaki

時節がら、スイカをイメージしてしまいました。スイカの中身は割ってみないと分からない。でも(人によっては)叩くことで、うまいスイカの音を聞き分けられるという。

2015/08/18 22:16:32

その他の回答3件)

id:MIYADO No.1

回答回数1075ベストアンサー獲得回数196

ポイント5pt

質問したいことがよく分かりませんが、↓の特に3番目あたりが参考にならないでしょうか。
http://ejje.weblio.jp/content/interface

id:torimaki

「接点」というニュアンスですね。ありがとうございます。

2015/08/18 08:18:00
id:pogpi No.2

回答回数428ベストアンサー獲得回数59

ポイント5pt

受け口とか、何か処理するためのデータを受け取る部分みたいな感じでだいだい近い意味で認識できたことになると思います。

id:torimaki

「接点」という客観的な言い方に対し、こちらはデバイスからみた「主観的」な言い方でしょうか。

2015/08/18 08:18:04
id:y-kawaz No.3

回答回数1422ベストアンサー獲得回数226

ポイント30pt

中でどんな風に実装されてるかはどうでもいいから「Interface」だけチャント定義してくれたらプログラムパーツとして使えるよってことでしょう。

id:torimaki

LLマンさんの言うところの「ブラックボックス」のような印象を受けました。はい。

2015/08/18 08:18:09
id:dev2 No.4

回答回数67ベストアンサー獲得回数26ここでベストアンサー

ポイント100pt

API(Application Program Interface)の「インターフェイス」のコンセプト


プログラミングの文脈での「インターフェイス」は、
「ブラックボックス」または「カプセル化」とセットだと理解しやすいと思います。


たとえばパソコンにしても、いちいち内部の配線をつなぎ直したりせず、
ユーザはカバーの上からUSBなどのケーブルでPCと機器をつなぐだけで、
外付けHDDとかいろいろ機能を拡張できるようになっていますよね?

これをプログラミングでやるのがAPIです。


ライブラリなどの内部実装を知らなくても、
関数やメソッドの引数だけ知っていれば使えるようにします。

Windowsが提供するWin32APIや.NET Frameworkにしろ、
GoogleやAmazonが提供するWebAPIにしろ、
細かい仕様は違うものの、ブラックボックスという点では同じです。

他1件のコメントを見る
id:dev2

どのたとえでも、「本体のブラックボックスと、それを操作する公開されたAPI」という同じ構造です。

「ボンネットの下のエンジン」がブラックボックスで、スピードやガソリンのメーターがAPIです。
「レストランのボーイ」がAPIで、ブラックボックスが料理を作るキッチンです。

また、回答本文ではPCの比喩を使いましたが、家電一般についても同じことが当てはまります。
内部のモーターや配線がブラックボックスで、カバーの上のボタンやリモコンがAPIです。


そして、API(と本体のライブラリ)を作成するときは、何を公開するのかがポイントになります。

基本はユーザ視点で必要な情報を公開するようにします。
配線の電流や歯車の回転数などは隠蔽して、調節する温度やガソリン残量などを公開するわけです。

2015/08/18 17:21:50
id:torimaki

時節がら、スイカをイメージしてしまいました。スイカの中身は割ってみないと分からない。でも(人によっては)叩くことで、うまいスイカの音を聞き分けられるという。

2015/08/18 22:16:32

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません