他のクラスやAPIのラッパー、または一部のコードを作成するという用語を使用しているソフトウェア開発者に出くわします。これは、経験豊富なソフトウェアプログラマーが使用する用語です。
だから、それが何を意味するのか、どんな考えでも。
例:簡単な質問。2種類の配列ソート手法があります。ラッパーを作成しましょう。
上記は非常に単純な例です
他のクラスやAPIのラッパー、または一部のコードを作成するという用語を使用しているソフトウェア開発者に出くわします。これは、経験豊富なソフトウェアプログラマーが使用する用語です。
だから、それが何を意味するのか、どんな考えでも。
例:簡単な質問。2種類の配列ソート手法があります。ラッパーを作成しましょう。
上記は非常に単純な例です
回答:
「ラッパー」という用語はよく使われます。通常、別のクラスのインスタンスを含むが、そのインスタンスを直接公開しないクラスを説明するために使用されます。ラッパーの主な目的は、ラップされたオブジェクトを使用するための「異なる」方法を提供することです(おそらく、ラッパーはより単純なインターフェースを提供するか、いくつかの機能を追加します)。
「ラッパー」という言葉は、古典的なデザインパターンを説明するときにも使用できます。
簡略化されたインターフェイスを提供するためにオブジェクトをラップすることは、「ファサード」パターンと呼ばれることがよくあります。ラッパーはファサードです。
特定のインターフェイスに適したクラスがある場合もありますが、そのインターフェイスに準拠するようにコードを変更することはできません。インターフェイスを実装するが、ほとんどの呼び出しをラップされたオブジェクトに向ける、そのクラスのラッパーを作成できます。これは「アダプタ」パターンです。ラッパーはアダプターです。
異なるアルゴリズムを使用して配列の並べ替えを実行できる2つのクラスがある場合、説明するインスタンスは「ストラテジー」パターンのように聞こえます。このパターンでは、オブジェクトに対して操作を実行する方法を提供しますが、その操作に使用されるアルゴリズムは、状況によって異なる場合があります。そのオブジェクトの構造に。
たとえば、ソートアルゴリズムの1つは、長さが100未満の配列には最適ですが、パフォーマンスが問題になる可能性があります。他のアルゴリズムは、より大きなアレイに適している場合があります。ソート操作をサポートする2つのアルゴリズムの「ラッパー」を作成できますが、配列の長さに基づいて使用するアルゴリズムを決定します。
ラッパーの大部分は、ある種の複雑さを隠すために存在します。
説明に使用されていないコード。
iPhoneができないことをiPadは何をしますか?
画面が大きいことを除けば、基本的に同じではありませんか?
Ipadはiphoneを「ラップ」します。つまり、ipad自体の中にiphoneのすべての利点があり、より大きな画面などの利点があります。しかし、基本的に、ipadの中にはIphoneがあります。
では、何が違うのでしょうか?唯一違うのは外観です。画面が大きく、おそらくIpadで電話をかけることはできません。
それは文字通り「オブジェクト」と同じです。
.............内部には同じですが、外観が異なるすべての良いものがあります。別のラッパー。
「ラッパーは、基になるオブジェクトとは異なる機能を公開する可能性があります」 ......わかりましたが、これはどういう意味ですか?
ラッパーによって、内部でアクセスできるものが制限される場合があります。たとえば、ipadは、その中に埋め込まれたIphoneにその機能がある場合でも、電話をかける機能を制限する場合があります。
オートマチック車とマニュアル車を考えてみてください。舞台裏では、オートマチック車には自動的にギアを変更するエンジニアリングメカニズムがありますが、基本的に、車は表面下ではまだマニュアル車です。言い換えれば、車の自動機能は、車の手動機能を「ラップ」します。オートマチック車で自分でギアを手動で変更したい場合は、それはできません。オートマチック車では、ギアを変更する機能は「公開されていません」。しかし、それはマニュアル車で露出されています。確かにアナロジーは少し緊張していますが、私が何をしているのか見ていただければ幸いです。
物事を単純化したい場合は、ラッピングクラスを作成します。使いやすい「ラッパー」を作成し、すべての複雑なビットをラッパー内に残して、それらの複雑なビットが「公開」されないようにします。
たとえば、その下にCOM呼び出しを行う.netラッパーを作成できます。ラッパーがない場合は、それらのCOM呼び出しを自分で行う必要があります。幸いなことに、ラッパーを使用すると、.netラッピングコードを呼び出すだけで、COM呼び出しを行うことができます。そして、それはうまくいけばあなたのために物事を単純化するはずです。
ラッパーは、実際のAPIを変更せずにAPIを内部的に呼び出すために作成されるコードです。
この例は、FacebookがFacebook C#SDKをリリースしたことです。SDKは、特定のメソッドやクラスを提供せずに、基盤となるプラットフォームを呼び出すことしかできないため、実際にはラッパーです。一方、Facebook DeveloperToolkitは完全なAPIです。
CoraScript)。CoraScriptには約50個のコマンドがあります。たとえば、デバイスに接続するコマンド、そのデバイスにファイルを送信するコマンド、フラッシュメモリでアプリケーションを実行するように指示するコマンドなどです。CoraScriptを手動でコーディングする代わりに、そのようなスクリプトを生成するC#ライブラリを作成するのが好きです。このC#ライブラリwrapper libraryはCoraScriptスクリプト言語用と呼ばれますか?
Connect localhostCoraScriptコマンドは+connect,"coralib3.dll version 1,8,11"、コマンドが正常に実行されたことを示す文字列を返します)。
「ラッパー」の例はたくさんあり、この用語は同じ意味で使用されることもあります。以下は、頭に浮かぶいくつかの例です。
DLLラッパー
過去に、COMを理解しているが.NETを理解していない古いアプリケーションで.NETの高度な機能を使用するために、.NETDLLの周りにCOMラッパーを作成しました。
オブジェクトラッパー(Java)
Javaではjava.lang、8つのプリミティブ型のオブジェクトメソッドを提供するためにパッケージで提供されるクラスがあります。Javaのプリミティブラッパークラスはすべて不変です。したがって、Wrapperクラスは、Objectが必要な場合にプリミティブ値を表すために使用されます。