[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ラッパー (wrapper)

pointこの用語のポイント

pointもともとの機能を包むよ

point代わりに矢面に立ってくれるよ

スポンサーリンク

簡単に書くよ

ラッパー (wrapper)とは

Hey!YOU!な人のこと
ではなく

もともとの機能を包んで、そいつの代わりに矢面に立ってくれるやつのこと
です。

image piyo

詳しく書くよ

プログラミングの分野で、よく登場します。
もともとの機能を包んで、もともとの機能の代わりに矢面に立ってくれるやつが「ラッパー」です。

ラッパー

「包む(ラップ:wrap)」+「~する人(er)」で「ラッパー(wrapper)」ですね。
「人じゃないじゃん!」とツッコミたくなるかもしれませんが、ゆるく捉えてください。

例えば、そうですね。

ここにスーパーエンジニアのピヨ太君がいました。

ラッパー2

ピヨ太君は人見知りです。
技術的には文句なしなのですが、対人能力が高くありません。
ぶっちゃけ、初対面の人と会話を成り立たせるのは困難です。

ラッパー3

あと、ピヨ太君は甘いもの好きです。
ケーキを供えないと働いてくれません。

ラッパー4

面倒くさいやつですね。

そこで、ピヨ太君の代わりにお客さまとやり取りをするピヨ子さんがいます。
ピヨ太君はピヨ子さんにラブラブです。
人見知りをするピヨ太君ですが、ピヨ子さんとだったら会話できます。

ラッパー5

お客さまはピヨ子さんとやり取りをします。
「こんなシステムが欲しい」と依頼したりですね。

ラッパー6

そして、ピヨ子さんがピヨ太君に直接の指示を出してシステムを作らせます。
ケーキを与えて「こんなシステムを作れ!」と指示をするのです。

ラッパー7

直接の関係性としては

ピヨ太←→ピヨ子←→お客さま

です。

ラッパー8

お客さまが直接やり取りするのはピヨ子さんです。
お客さまには、ピヨ子さんしか見えません。

ラッパー9

ですが、その裏ではピヨ子さんの指示を受けたピヨ太君が一生懸命お仕事をしています。

ラッパー10

これは

お客さまはピヨ子さんを通してピヨ太君を利用している

と言えるでしょう。

ラッパー11

この話におけるピヨ子さんがラッパーです。
ピヨ太君の代わりに矢面に立って、あれやこれやとやってくれているやつです。
見方によっては、ピヨ子さんがピヨ太君を包んで、対人能力の高いピヨ太君として振る舞っていますよね?

ラッパー12

ここで、ちょっと考えてみてください。
もしピヨ子さんがいなかったら、どうでしょう?
お客さまと人見知りピヨ太君が直接やり取りする場合です。

上手くいかなそうな気がしませんか?

ピヨ太君は人見知りなので、上手く意思疎通できないかもしれません。
「ケーキを供えろ」と言われて、お客さまがイラッ!とする可能性もあります。

ピヨ太君ひとりでお客様の役に立つことはできないでしょう。
ピヨ太君は役立たずです。

ところが、ピヨ子さんがいることによって、そのような状況が改善されます。
ピヨ太君自体は何も変わっていませんが、ピヨ子さんが矢面に立ってくれることで、ピヨ太君が他人様の役に立てるようになりました。

ラッパーを使うことで

1.もともとの機能を変えないで
2.もっと使えるやつにする


ことができます。

また、矢面に立つのはピヨ子さんです。
ピヨ太君はお客さまの目に触れません。
つまり

もともとの機能を隠ぺいできる

わけです。

他にもラッパーを使うメリットはあると思いますけどね。
パッと思い浮かぶのは、そんなところです。

せっかくなので、もう少しプログラムちっくな例も挙げておきましょう。

ここに「3つの値を与えると足し算をして結果を返してくれる」関数がありました。
関数の名前は、仮に「ピヨ太関数」としておきましょう。

ピヨ太関数に「1」「3」「4」を与えると、足し算結果の「8」を返してくれます。

ラッパー13

ある日のことです。
誰かが「あー、3つじゃなくて2つの値を足し算した結果が欲しいな」と言いました。

ラッパー14

さて、どうしましょう?

ピヨ太関数を改造しても良いのですが、せっかく動いているのに手を入れたくありません。
そこで、新しく「2つの値を与えると「0」と2つの値をピヨ太関数に与える」関数を作りました。
関数の名前は、仮に「ピヨ子関数」としておきましょう。

ピヨ子関数に「3」「4」を与えると「0」「3」「4」をピヨ太関数に与えてくれます。
そして、ピヨ太関数から返ってくる結果を、そのまま教えてくれます。

ラッパー15

このような状況を指して

ピヨ子関数はピヨ太関数のラッパーである

と言います。

ラッパー16

ピヨ子関数(ラッパー)はピヨ太関数(もともとの機能)を包んで、代わりに矢面に立ってくれていますよね。
さらに、ピヨ太関数を変えないで、もっと使えるやつ(目的に合致したやつ=2つの値の足し算をできるやつ)にしてくれています。

今回挙げた例はショボイですが、ラッパーの使いどころや役割は、いろいろあります。
例えば

・受け取るパラメータの数や形式を、本来の関数と変えたいとき
・本来の関数でやっていないパラメータのチェックをやりたいとき
・本来の関数からの戻り値を加工したいとき
・本来の関数を隠ぺいしたいとき
・本来の関数の前後に処理を追加したいとき


などです。
もともとの機能を外に見せたくない場合や、もともとの機能に手を入れないで変更を加えたい場合などに、よく使います。

image piyo2

一言でまとめるよ

まぁ「ラッパー」って単語が出てきたら「もともとの機能の代わりに矢面に立つやつなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク