2008-09-15 5 views
17

再使用/リリース等価原理とは何ですか、なぜ重要ですか?Reuse/Release Equivalence Principle(REP)

+4

あなたは自己学習者のバッジがほしいと思うでしょう:-) – Mendelt

+1

これはいいと思います。しかし、私がこれをやっている主な理由は、OOの設計原則に関する他の質問をすることです。サイトに情報を提供し、これらの原則の意識を高めることを助けることです。私は彼らのことを聞いたことがない人達の数に絶えずショックを受けている。 –

+0

さて、十分に公正。私はリストを削除するためにあなたを甘んじる私の答えを削除しました。 (とにかくここにはコメントがあったはずです) –

答えて

24

リユース/リリース等価の原則(REP)は言う:

再利用の単位は、リリースの単位です。効果的な再利用には、変更管理システムからのリリースの追跡が必要です。このパッケージは、再利用と解放の有効な単位です。

再利用の単位は、放出

コードは、一つのクラスからコピーし、他にそれを貼り付けて再利用されるべきではないの単位です。元の作者がコード内のバグを修正したり、機能を追加したりすると、自動的に利益が得られません。あなたは何が変わったのかを見つけ出し、あなたのコピーを変更する必要があります。あなたのコードと元のコードは徐々に分岐します。

代わりに、リリースされたライブラリをコードに組み込むことによって、コードを再利用する必要があります。元の著者はそれを維持する責任を負います。ソースコードを見る必要はありません。

効果的な再利用ライブラリの作者はいくつかの並べ替えの番号や名前でリリースを識別するために必要

変更管理システムからのリリースの追跡が必要です。これにより、ライブラリのユーザは異なるバージョンを識別することができます。これには、ある種のリリース追跡システムの使用が必要です。

パッケージは再利用の効果的な単位であり、

を解放再利用や解放の単位としてクラスを使用することが可能であるかもしれない、しかし、一般的なアプリケーションで非常に多くのクラスがあり、それは次のようになりますリリース追跡システムがそれらすべてを追跡するのは面倒です。より大規模なエンティティが必要であり、パッケージはこのニーズにうまく適合します。

Granularityに関するRobert Martinの記事も参照してください。

+0

パッケージでは、JavaパッケージやC#名前空間ではなく、dllとjarが意味されていると思います。そうですか? –

+0

Granularityへのリンクが機能しなくなりました。ここはhttps://pdfs.semanticscholar.org/53d0/8de266fb80355400d10f7ea77eea971d48f9.pdfですか? –

関連する問題