-まあ、ホイールについてのこれらのありふれた、疲れた! -あなたは言います。
そして、ここでは十分ではありません!
現代の科学の世界とプログラミングの世界では、ホイールは発明されただけです
反抗的な
Javaはそのような特別な言語であり、その開発者は非常に思慮深く標準ライブラリの開発の問題に取り組んできました。 したがって、ここのホイールはあらゆる味と色に十分です。
まだ信じていない人のために既存の開発を使用する6つの理由のリストはここにあります:
1.自分のホイール-図8。
証明は簡単です。 より多くのコードが書かれればされるほど、より多くの間違いがなされます。 したがって、ホイールコードにはおそらくエラーが含まれています。 一方、スタンプされた市販のホイール(繰り返しテストされたライブラリ)には、最小限のエラーが含まれています。
配列を並べ替えるという古典的なタスクを実行します。 減少しない名前でPerson配列をソートするとします。
ソートは、パラメーターに応じて、姓または名で実行されます。
クラス Person {
文字列名;
文字列の姓;
String getName( int index){
インデックス== 0を返しますか? 名前:姓;
}
}
void nativeSort(個人[]人、最終intインデックス){
Arrays.sort(persons、 新しい Comparator <Person>(){
public int compare(Person o1、Person o2){
return o1.getName(index).compareTo(o2.getName(index));
}
});
}
void mySort(人[]人、 intインデックス){
for ( int i = 0; i <persons.length-1; i ++){
for ( int k = 0; k <persons.length-1; k ++){
if (persons [k + 1] .getName(index).compareTo(persons [k] .getName(index))<= 0){
人buf =人[k];
人[k] =人[k + 1];
人[k + 1] = buf;
}
}
}
}
一見、両方のソリューションは完全に正しいです。 それらの1つはライブラリの並べ替え関数を使用し、2番目は並べ替えアルゴリズムを実装します
バブル。 しかし、そのソリューションには深刻な欠点があり、実際のコードに不快な結果をもたらす可能性があります。 どっち? 言わないよ!
これは独立した仕事のためのタスクです:)。 回答は、コメントを白いフォントで書いてください。
2.ホイールの回転が遅くなります。
最初の段落の例では、バブルソートを使用しています。 ご存知のように、2次時間で実行されます。 そして、標準的なソートは
ソートアルゴリズムをN * log(N)の複雑さでマージします。
3.コードの保守はより高価です。
ライブラリのコードは、何らかの方法でサポートする必要があります。 リファクタリング、改良、最適化、3晩のコーヒーカップでのデバッグが必要になります。
また、既製のライブラリを使用すると、機能の一部の開発をサードパーティ(多くの場合、より信頼性の高い)開発者に転送できます。
4.標準ライブラリを知っていると、他の人のコードをよりよく理解するのに役立ちます。 結局のところ、標準ライブラリは異なるチームで使用されるための標準です。
5.標準ライブラリとインターフェースを使用するモジュールは統合が簡単です。
モジュール統合にはデータ交換が含まれます。 データが標準化されていない場合、コンバーターを作成する必要があります。
たとえば、プロジェクトのライブラリを接続して、http接続
org.apache.commons.httpclient.*
動作するようにします
org.apache.commons.httpclient.*
およびxml
javax.xml.parsers.*
ためのライブラリ。 私はこれらのことに関連する頭痛を保証します
ライブラリは別のクラスを使用してURLを記述します(
java.net.URL
および
org.apache.commons.httpclient.HttpURL
)
6.図書館の開発者は、必要なものをあなたよりもよく知っています。 これは陰謀説のように聞こえますか?
「まったくありません。」 Javaの世界の標準は、 コンソーシアム(en)によって受け入れられています。つまり、
決定は、ほとんどの開発チームに適しています。 そして、ほとんどすべての人に適しているので、確実にあなたに合うでしょう。
ここでは、企業内で完全に開発された他の(en)テクノロジーについて思い出すことができます。
何が(必ずしもそうではないが)あなたにとって十分に快適でないようにすることができます。
Javaウィザードのブログ記事の完全版。