我正在使用 VMC 创建一个站点,并使用 bean 将数据从模型传输到控制器/视图。
我计划实现一些基本且非常简单的缓存,如果 bean 没有更改,它们会将它们存储在一个简单的结构中(随着使用量的增长,我们将在 1.3 版左右实现一个更好的缓存系统)。
所以问题在于我们的 bean 中有什么。
一种类型的 bean 只保存基本数据,并依赖一些外部服务来完成其余的工作(联系 DAO 以获取查询,解析查询以加载 bean 值)。这是我同事反复告诉我的“贫血豆”模型:-)。
另一种类型的 bean 会更加独立。它会知道 DAO 在哪里,因此会直接调用 DAO 来获取数据查询。它将包含解析查询和设置属性的必要函数。它基本上将大部分“服务”层与 bean 结合起来,将直接数据库留在 DAO 层中。
当然,对于控制器/视图,两个 bean 的外观和行为都相同。
但问题是内存以及 ColdFusion/Java 如何处理它。
使用贫血模型,bean 将有足够的内存来保存属性变量,只需轻轻一点,让它在需要时指向服务。
第二种bean的功能比较重,会不会占用缓存更多的内存???bean 的每个副本都会有方法的完整副本吗?
我倾向于认为第二个模型不会有更多的内存,因为它们会“共享”方法并且只需要属性变量的内存。
恕我直言,第二种方法将简化代码库,因为 bean 需要的代码更接近 bean,而不是分散在 DAO 和服务之间。并且它会减少服务中的简单函数,这些函数仅传递对 bean 的 DAO 的调用,可以在需要时直接转到 DAO...
这个问题有意义吗??或者至少我是怎么问的?