2011-12-21 6 views
1

可能性の重複:
Should you wrap 3rd party libraries that you adopt into your project?は、opensourceフレームワークをラップするかどうかを指定します。

私はJavaでメールを送信するためのmail.jar、オープンソースのAPIを使用しています。

私はこのように私自身のフレームワークへの呼び出しラップする必要があるかどうかを疑問に思って:

DedicatedFramework.sendMail(subject, body, recipientList); 

このdedicatedFrameworkが、その後のmail.jarするために必要な呼び出しを行います。

明日私はmail.jarをメソッドを非推奨/変更する新しいバージョンに置き換えると、私はカップリングを減らすという考えです。

一方、フレームワークを「隠す」ためにボイラーコードを追加します。

あなたはこれに関して何をしていますか?もちろん

、それは別のメールよりもフレームワークのようになります。画像の管理、jdbcTemplate、GoogleCollections ...

+1

のための一般的な知識である場合

  • を変更することが非常に低いことウルド。抽象化は、抽象化が必要なときに便利なツールです。完全に依存します。 –

  • +0

    確定、私の謝罪!私はあまりにも速いウィザードの提案を読んで:( –

    答えて

    0

    がそれを包みます。利用可能なものとそれがどのように使用されるかの間の橋渡しは、1)定型的なコードがたくさんあり、2)マイナーな変更があっても20箇所の変更が必要なときにそのコードを維持することが多い。

    この質問にはまだ表示されていないことがあります。私たちの記憶の制約は何ですか?追加のクラスが読み込まれるのをサポートできますか?他の問題と同様に、ラップを行うことによってどのような問題が発生するのかを特定する必要があります。

    ただし、「_ _のためラップできません」と表示されていない場合は、お勧めします。

    0

    私はそれをラップします。 1つの場所にコードがあれば、コードを見つけて変更する方が簡単です。

    0

    一般に、APIはかなり安定しており、クラス/メソッドは通常消滅しません。非推奨になります。あなたの特定のケースでは、mail.jarは非常に安定しているので、私はそれをラッピングしても構いません。

    私のアドバイスは、APIの上にAPIを書く時間を無駄にしないことです。長期的に保存するよりも時間がかかります。私は過去10年間に数多くの図書館を使用してきましたが、私が今までに問題を抱えていた唯一の図書館は社内のチームによって書かれたものでした。彼らはリファクタリングしてパッケージ名とメソッド名を変更しました。それは多くのコードを破った。私はオープンソースライブラリでそれを経験したことがありません。

    2

    あなたは明日別のメールライブラリを使用する必要があります知っますか?それは可能性もありますか?疑わしい。 「たぶん1日」のためだけのラッパーは、YAGNIの最悪の種類です。

    一方、sendMail()メソッドは、メールを送信したときに繰り返される何かを実行する場合、ラッパーではなく有用な抽象化です。

    0

    ラップ

    • それは開発者が比較的少数のフレームワークウェルに
    を使用する方法を知っているプロジェクトの一部となる場合は、フレームワークは、すべてのコードベース
  • 上で一般的に使用されます

    ワットということは、コードのほんの一部で使用される場合

    • をラップしないでくださいフレームワークやAPIが本当に何の「あるべき」はありません開発者
  • 関連する問題