私が働いている場所では、従業員はサードパーティのデスクトッププログラムをクライアントに使用しています。このプログラムは、データをフラットファイルに保存します。私の同僚は、フラットファイルをリモートサーバーにアップロードし、フラットファイルがWebサイトからダウンロードされるときにデスクトッププログラムを開き、デスクトッププログラムが実行されているかどうかを確認するJavaプログラムを記述したいと考えています。 Windowsプロセスを確認するかどうか。
彼はこのヘルパー/ユーティリティプログラムを「ラッパー」と呼んでいます。しかし、それは何も包みません!私は彼と一緒にそれを片付けようとしました、しかし彼は「まあ、私はそれをラッパーと呼びます」と言いました。彼は現在、それを「ラッパー」と呼ぶ会社の全員を持っています。なんていうの?私はそれがヘルパープログラムかユーティリティプログラムだと言います。
公式の定義はないと思います!私の考えでは、ラッパープログラムは、一般に、ラップされたプログラムが開始する前に開始し、ラップされたプログラムが終了した後でなければ終了しないプログラムです。ラッパープログラムは、おそらくラップされたプログラムの存続期間も管理します(ユーザーのために開始し、停止します)。
しかし、私は物事の名前についてあまり議論しないことをお勧めします。重要なことは、うまく機能するソフトウェアを設計することです。時々面倒な用語がこの目標に役立ちます。時にはホブゴブリンです。
用語は、誤って使用されて混乱が生じない限り、それほど重要ではありません。この場合、ラッパープログラムである別のプログラムがユーザーに導入されると、同じように記述されているが機能が異なる2つのプログラムが表示されるため、ユーザーは混乱します。
例-開発チームで何度も何度も見たこの「クラシック」は、誰かがテスト目的でスタブまたは偽のクラスを書き始めるところです。しかし、クラス名に「モック」という単語を使用しても、それらは「モック」と呼ばれます。つまりMockOfExternalThing。他の誰かがやって来て、EasyMockやMockitoなどの実際のモックフレームワークを使用する必要がある場合を除いて、これには何の問題もありません。現在、プログラマは自分が何を扱っているのかわかりません。さらに悪いことに、モックフレームワークを使用したことがない開発者は、モックという用語とその意味について完全に混乱します。
したがって、あなたの場合、ラッパーという用語を使用している他の人についてあまり心配する必要はありません。ユーザーに別の動作をするものは表示されないが、同じ用語を使用していると思われる場合に限ります。
ラッパーは、最終的なタスクまたはプロセスの内部ロジックをカプセル化するレイヤー、コード部分などです。
ラッパーには主に2つのタイプがあると言えます。
abstraction wrappers:原則は、最終タスクをできるだけ非表示/抽象化して、それにバインドすることです(つまり、ラッパーの呼び出し元は最終タスクのロジックを知る必要はありません)。
engine/controller wrappers:これらは、最後のタスクでは実行できない、または実行することが想定されていない特定のロジックまたはコンテキストロジックを追加するために使用されます。
ラッパーでもこの2つの目標を達成できることに注意してください。
多くの場合に使用できますが、プログラムに関しては、ラッパープログラムは「プログラムランチャー」です。その主な目標は、子プログラムを立ち上げることです。
子プログラムにいくつかのコンテキストパラメータを渡し、起動前および起動後の手順を処理し、再起動/シャットダウンするなどを行う場合があります。
子プログラムを新しいプロセスまたは内部プロセスとして起動できますが、ラッパープログラムの実行は子プログラムの実行に直接リンクされています。ラッパーが停止すると、子プログラムも停止します。
サードパーティのクライアントと比較すると、サードパーティのクライアントは子プログラムのプロセスを気にしません。子プログラムのファイル/構成/ものを維持するために存在しますが、起動したとしてもその実行の責任は負いません。
彼がこれを「ラッパープログラム」と呼ぶ理由を説明できない場合、彼は名前についてあまり考えずにこのWordを直感的に使用しました。名前は音と煙です-物事の名前について議論しないでください。
ラッパーではなくサービスのように聞こえます。サービスとは、遠くから特定の条件を求めて争いに突入し、奇妙な仕事を処理するこれらの警戒心のある小さな生き物です。サービスは厳密にはMicrosoft Windowsによって予約されているキーワードですが、より広いコンテキストで使用されるまでは「スレッド」という用語でした。だからその言葉を自由に採用してください。少なくとも、ラッパーよりも正確です。
専門家でない人でも理解できる一般用語で説明されていれば問題ありません。
私の理解では、ラッパープログラムは標準プログラムの周囲にラップされており、企業のポリシーに準拠している可能性のあるカスタマイズされたプログラムのように、エンドユーザーの高度な手順または制限的な手順を処理します。
私は常に、ラッパーを他のプログラムやプロシージャの前処理と後処理を行う一般的に小さなプログラムと見なしてきました。したがって、通常、ラッパーは、ラッピングしているプログラムを呼び出すものです。
これを行う理由の例:
これにより、呼び出されているプログラムの環境条件をプログラムで設定して、ラップされたプログラムが常に満足できる形式になるようにすることができます。
これにより、必要に応じて、ラップされたプログラムの呼び出しをユーザーの目から隠すことができます。
「ラッパー」とは、販売、管理、またはマーケティングがそれを呼び出したいものです。 Windowsを「クラウド」として宣伝している新しいコマーシャルを見たことがありますか?そうです、あなたはデスクトップ上にあなた自身の「小さな雲」を持っています...