0

データベースに接続するアプリケーションを既に実装しています。ここでの問題は、いくつかのオブジェクトに対してキャッシング システムを(簡単に可能であれば)実装する必要があることです。これらのオブジェクトが必要になるたびに、データベースから必要なデータを取得するのに初期化に時間がかかりすぎるためです。(これらのオブジェクトは頻繁には変更されません。実際、必要に応じてタイムスタンプを使用して更新できます。)

アプリケーション全体を簡単に変更することはできないため、コンストラクター自体に「this」オブジェクトを設定できるメソッドがあるかどうかを知りたいです。を返すメソッドを呼び出して「変数」にid設定し、実際にオブジェクト全体を更新できるObjective-Cの機能について言及しています。self私の考えをもう少しうまく説明するには、これらのクラスで静的キャッシュを初期化し、コンストラクター内に既に格納されているオブジェクト (利用可能な場合) を取得したいと考えています。すべてのセッターは SQLコードも参照することに注意してください。

また、既に保存されているオブジェクトのゲッターを使用して、コンストラクター内で新しいオブジェクトの値を設定できることも知っていますが、これにより多くのオブジェクトも作成され、値が変更される可能性がある場合に備えて、これを複製しませんそのオブジェクトから複製された他のすべてのオブジェクトに。

何かアイデア、ありがとう?!

4

1 に答える 1

4

コンストラクターは、新しいオブジェクトに対してのみ動作します。オブジェクトを再利用する場合、コンストラクターは使用できません。オブジェクト自体の作成は些細な << 100 ns であり、オブジェクトをリサイクルする必要はなく、データベースから取得したオブジェクト内のデータをリサイクルする必要があると私は信じています。

データベースへのアクセスは約 0.1 ~ 10 ミリ秒です。オブジェクトの作成は 10 ~ 100 ns (ミリ秒の 100 万分の 1) です。新しいオブジェクトを作成するコストが心配な場合は、100 万倍のコストがかかる可能性があるため、データベースを使用しないでください。

于 2013-03-08T11:22:22.510 に答える