1

我发现自己在我的存储库中经常做这样的事情:

protected $currencies;


public function findAll()
{
    if (!isset($this->currencies))
    {
        $this->currencies = parent::findAll();
    }

    return $this->currencies;
}

因此,所有需要收集实体对象的服务都可以只调用findAll存储库,而无需多次启动数据库查询/水化过程。

是对的还是我滥用了存储库模式?您在本地保存收藏的方式是什么?

4

1 回答 1

0

如果你必须做这样的事情,你可能正在滥用你的控制器/服务。当仅在请求期间有效时,您是否需要在内存中缓存结果?即一旦页面加载,所有这些都消失了。

仅当您在页面内多次使用相同的 findAll 结果时,这才有意义,这就是您需要解决的问题。

于 2013-05-17T12:26:36.960 回答