私は、可能な限りオブジェクトの代わりにプリミティブを使用するべきだと言っている人のビデオを見てきました。 なぜなら、オブジェクトにアクセスするということはポインタを使うことを意味し、オーバーヘッドがあるからです。したがってJAVA - ポインタチェイス - ベストプラクティス
:
- ため、データベース内の潜在的なヌル値の複数のフィールドがオブジェクトであると(JPAを使用して)SQLテーブルにマッピングクラス(例:代わりINTの整数)がある場合
-
が
- 私は、オブジェクトがプリミティブで置き換えられるマザークラスを作成する必要があります(可能な場合は、アプリでnullと同等の固定値を使用します)。(例:-1の代わりにヌルの)
- 大きなデータ
- の量と唯一の子でデータ
- を永続化時に使用されるデータベースにマッピングされた子クラスを処理するときに使用されている母クラスクラスIは以下のように、列にマッピングされたいくつかのメソッドを追加することができます:
@Column("MY_COLUMN")
public Integer getId() {
// super.getIdAsInt() returns a value of type int, the primitive.
// -1 means value not set in my app.
Integer result = (super.getIdAsInt() == -1) ? null : super.getIdAsInt();
return result;
}
を、私はこのパターンはまた、子クラスがデータベースに(データの永続化についてですいずれの場合に適用することができると思いXMLファイルなど)とNULL値を持つフィールドは意味があります。
- は、これらのアプリケーションのパフォーマンスを向上するためのベストプラクティス可能性がありますと思いますか?
- もしそうでなければ、潜在的な欠点のいくつかの例を教えていただけますか?
おかげで、
あなたはこれを問題として考えすぎているかもしれません。 – freedev
私はあなたのソリューションを早めに最適化しようとしていると思います。オブジェクト指向言語を使用していますが、なぜオブジェクトを使用すべきではありませんか?間違いなくオーバーヘッドがありますが、可能な限り速い結果が求められる場合を除き、心配する必要はありません。パフォーマンス上の問題がある場合は、可能な限り最良の方法で問題を解決することに集中してください。コードをプロファイリングし、改善を行うことができる場所を確認してください – MadProgrammer
NULLを意味するときにダミーの値を返すことは、コードのにおいです。あなたはそれがNULLであることを暗示すべきではありません、あなたはそれがNULLだと言うべきです。 getIDを使用し、null以外の値がnull以外の値であると仮定すると、オブジェクトが実際に存在しない理由をデバッグするためのエキサイティングな時間になります。 – Compass