2011-07-22 8 views
1

C#-3.5を使用して在庫アプリケーションを開発しました。メインのMDIフォームには、現在の月の合計総額と現在の月に生成された合計請求額に関する情報を含むステータスバーが含まれています。新しい請求書が生成され、請求書情報がデータベースに保存されるたびに、このステータス情報が変更されるはずです。Observerパターンは、一定の間隔でSQLクエリを実行するよりも優れていますか?

現在、次のアプリケーションの起動時に変更されます。 MDIフォームがロードされ、タイマーでSQLクエリクエリを実行するときに新しいスレッドを作成することで、さらに改善することができます。しかし、新しい請求書が生成されたときにObserverパターンをステータスバーに通知するために使用できるかどうか疑問に思っています。どちらの場合でも、私はSQLクエリを起動する必要があります。

オブザーバーパターンを使用できる場合、どのような利点がありますか?

編集

私はこの方法を実行したい:

(1)保存請求書ボタンが請求書フォームでクリックされた:3つのシナリオにUpdateStatusInformationを()。

(2)DeleteInvoiceフォームで[請求書の削除]ボタンをクリックします。

(3)StockEntryフォームでクリックしたストックボタン(新しい在庫が追加されたとき)を保存します。

私はデリゲートを介してのみリンクできますか?説明してください。

+0

plzでは、アプリケーションの構造に関するさらに詳しい情報を提供しています。それは単一のアプリケーションですか、複数のアプリがあります(1つは注文用、もう1つは....)。 – Juri

+0

これはWindows上で動作する単一のMDIアプリケーションです。 – RKh

答えて

0

私はこのシナリオをオブザーバーの候補としては見ません。 データベースにリンクされたステータスのステータスページで永続オブジェクトを使用している場合は、質問の説明からわかりませんが、ここでは何も観察する必要はありません。これはデータベース更新の場合で、ポーリングを介して行う必要があります。

あなたのアプリケーションのレイヤーとフローについて考えてください。また、私は次の質問を見ることができました。 1.メインアプリと別途請求書入力用のアプリがありますか?はいの場合、ステータスページでサーバーの変更をポーリングする必要があります。 2.あなたはアプリがスタンドアロンのアプリですか?

これが役に立ちます。

+0

これはスタンドアロンアプリケーションです。 – RKh

関連する問題