【发布时间】:2011-04-07 03:19:34
【问题描述】:
我让自己背负着一个现有的应用程序 - 它尝试自己做很多事情,但大部分事情都做得很糟糕!
此应用程序是一个 ASP.net 3.5 Web 应用程序,具有典型的 UI -> 业务 -> DAL 类型的模式。
我面临的问题是,当多个用户请求相同的信息时,即使只是为了查看它,也会实例化相同的业务对象,并从数据库中检索相同的数据。
目前,这些对象还没有像工厂实现或类似的东西的单点实例化。对象实例化只是散落在各处。
我一直在考虑的一个选择是将整个实例化逻辑封装在工厂中 - 并在工厂中构建逻辑以缓存对象并相应地返回。
我正在考虑的另一个选项 - 我过去在我的一个项目中使用过 CSLA,我想我记得它曾经用于缓存业务对象。然而,我不知道它是如何实现这一目标的。我正在考虑使用像 CSLA 这样的框架,它提供了这样一种工具来缓存我的业务对象。
但是,上述两种选择都具有相当的侵入性,如果不彻底改造,将涉及影响整个业务层的重大改造,这对我来说是一个主要问题,因为没有(阅读 zilch,nada,零,大 - O) 对代码的任何部分进行自动化单元测试。
我想知道的是:
有没有人知道任何框架/产品可以提供一种侵入性较小的方式让我能够在不重新设计/重写整个业务层的情况下实现这一目标?
如果没有 1,与上述两个选项相比,是否有更容易实施的建议?
不,退出公司不是一种选择 - 无论如何都不是! :-)
【问题讨论】:
标签: design-patterns frameworks caching business-objects