单例作为访问数据库的性能升级

Singleton as performance upgrade in access to database

我正在编写一个实现不同设计模式的 .NET 应用程序。 我有一个想法来编写单例+享元模式示例。 假设我有包含比萨饼和配料的远程数据库。我的想法是: 在应用程序启动时,我会下载所有 Pizzas 和 Ingredients,并将它们保持在 flyweight 模式 class。多亏了这个,我希望能节省一些内存。

此外:我想实现单例模式,这样就可以在不询问数据库的情况下访问下载对象。这不会在访问数据库时节省我的时间吗?

现在我只需要将订单插入数据库而不需要数据。

请告诉我这种对单例和享元的解释是否合理。

享元是当你有许多不同种类的单一事物时。

单身是指只有一件东西。

例如,您可以使用享元模式来描述国家/地区。加拿大一件,俄罗斯一件,等等。它们都是国家,具有相似的属性,但不一定完全相同。

相比之下,你可能会用一个单例来表示地球,地球的Object只能有一个Class。

至于在启动时加载整个数据库,这似乎是不必要的不​​良做法,数据库用于保存您可以检索的信息。如果你将多次使用同一个调用,你应该缓存结果,如果你有一个需要大量基于文本的搜索的庞大数据库,你应该使用基于 lucene 的搜索服务器,等等。

然而,对于对数据库的简单唯一 SQL 或 LINQ 调用(使用 EF),您应该在需要使用上述调用的结果时调用。