观察者模式如何比按一定时间间隔触发 SQL 查询更好?

发布于 2024-11-25 17:23:00 字数 477 浏览 0 评论 0原文

我使用 C#-3.5 开发了一个库存应用程序。主 MDI 表单包含一个状态栏,其中包含有关当月总金额和当月生成的总账单的信息。每当生成新发票并将发票信息保存在数据库中时,此状态信息就会发生变化。

目前它会在下次应用程序启动时发生变化。我可以通过在 MDI 表单加载时创建一个新线程并使用计时器执行 SQL 查询来进一步改进它。但我想知道是否可以使用观察者模式在生成新发票时通知状态栏。无论哪种情况,我都必须触发 SQL 查询。

如果可以使用观察者模式,有什么好处呢?

已编辑

我想在三种情况下执行一个方法:UpdateStatusInformation():(

1) 单击发票表单上的“保存发票”按钮。

(2) 在“删除发票”表单上单击“删除发票”按钮。

(3) 单击 StockEntry 表单上的“保存库存”按钮(添加新库存时)。

我只能通过代表链接吗?请举例说明。

I developed an inventory application using C#-3.5. The main MDI Form contains a status bar with information on Total Gross Amount in current month and Total Bills generated in current month. Whenever a new invoice is generated and the invoice information is saved in the database, this status information is supposed to change.

At present it changes on next application startup. I could improve it further by creating a new thread when the MDI Form loads and execute SQL Query query with the timer. But I am wondering whether Observer pattern could be used to notify the Status Bar when a new invoice is generated. In either case, I have to fire an SQL Query.

If an Observer pattern can be used, what are the advantages?

Edited

I want to execute a method: UpdateStatusInformation() on three scenarios:

(1) Save Invoice button is clicked on Invoice Form.

(2) Delete Invoice button is clicked on DeleteInvoice Form.

(3) Save Stock button clicked (when new stock is added) on StockEntry Form.

Can I only link via a Delegate? Please illustrate.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尽揽少女心 2024-12-02 17:23:00

我不认为这种情况适合观察员。
您在这里没有任何需要观察的内容,如果您在状态页面上使用持久对象来获取与数据库链接的状态,则可能是一种情况,我从问题描述中没有看到这种情况。这是数据库更新的情况,应该通过轮询来完成。

您是否可以对应用程序的层和流程有一些了解?我还可以看到以下问题。
1. 你们有主应用程序和单独的应用程序用于发票输入吗?如果是,那么您的状态页面必须轮询服务器以了解更改。
2. 你的应用程序是一个独立的应用程序,对吗?

希望这有帮助。

I don't see this scenario as a candidate for observer.
You don't have anything to observe here, If you are using persisted object on the status page for status linked with database, that could be a case, which I don't see from questions description. This is database update case, should be done via polling.

will it be possible for you give some idea about layers and flow of your application. Also I could see following questions.
1. Do you have Main app and separate app for invoice entry? If yes then your status page has to poll server for changes.
2. You app is a standalone app right?

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文