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

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2015/08/17 11:32:10
  • 終了:2015/08/21 08:36:41

ベストアンサー

id:dev2 No.4

LLマン回答回数67ベストアンサー獲得回数262015/08/17 18:16:55

ポイント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

みやど回答回数333ベストアンサー獲得回数732015/08/17 12:23:44

ポイント5pt

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

id:torimaki

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

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

pogpi回答回数357ベストアンサー獲得回数462015/08/17 17:15:18

ポイント5pt

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

id:torimaki

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

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

y-kawaz回答回数1419ベストアンサー獲得回数2252015/08/17 17:37:34

ポイント30pt

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

id:torimaki

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

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

LLマン回答回数67ベストアンサー獲得回数262015/08/17 18:16:55ここでベストアンサー

ポイント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

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません