2012-03-20 12 views
0

私は、APIを消費するJavaシステムを持っています。数日前、私たちは次の問題に直面しました:リモートAPIが私のシステムから非常に多くのリクエストを受けていました。システムの初期段階に戻っても大きな懸念事項ではありませんでしたが、システムのパフォーマンスは少しずつ悪化していました。私のデータが増えていて、各エンティティに対して複数のリクエストがあったからです。データが頻繁に更新されていないため、私が作成したネットワーク要求の多くは本当に必要ではないことに気付きました。そこで、システムを起動すると、すべてのリモートAPIデータをover-eager loadingにするクラスを実装しました。エンティティを作成/更新するときは、要求が行われる前にそのエンティティをロードします。私はそれに応じて削除を扱います。また、リモートAPIは、変更が行われたときに私に通知し、システム外でこの変更が行われた場合でも更新を続けることができます。この過剰なローダーオブジェクトは、プロキシパターン実装の例ですか?

私が本当に知りたいのは、この練習の名前はありますか?既知のデザインパターン ?私はちょっとした研究をしたと言いますが、それはproxy patternだと思いますが、実際、デザインパターンのほとんどは非常によく似ています。デザインパターン。

答えて

1

実装したものにキャッシュシステムと呼んでいます。しかし、これについてのデザインパターンがあるかどうかはわかりません。

また、変更が行われたときにリモートAPIが通知するという事実は、オブザーバパターンを使用して行われている可能性があります。

+0

はい、キャッシュシステムと考えられます。私はこのような名前で始まった。しかし、_cache miss_は、通常のキャッシュで発生する可能性のあるもので、データを取得するためのフォールバック方式がありますが、これは私のシステムでは起こりません。それはもっと鏡のようなものです。また、APIがHTTP POSTを介して私に通知するので、Observerパターンの場所がないと思います。 – Cacovsky

0

「遅延読み込み」の見出しの下では、プロキシパターンが多くなります。オブジェクトへのアクセスを制御するための Design Patterns (Group of Four Book):

理由の一つに指定されたプロキシ・パターンの記述から、我々は実際に それ

を使用する必要があるまで、その作成と初期化の完全な コストを延期することです

私は、あなたがそれほど熱心な負荷以外のものを呼び出すのかどうか分かりません

関連する問題