我想了解存储库问题的原理。但我偶然发现了另一个问题。对我来说,它看起来像存储库模式导致大量的开销。存储库模式和开销..?
一个例子:
我的实体类如下所示:
class newsEntity
{
private $title;
private $content;
private dateCreated;
private $author;
private $category; // just 1 category possible for simplicity
# .. Getter and Setter methods ...
}
的仓库看起来像这样(ofcourse简体)
class newsRepository
{
public function getNewsByYear ($year)
{
$newsList = array();
// Some ORM code which fills $newsList with newsEntity objects
}
}
客户端代码看起来像这个:
$repo = new newsRepository();
$news = $repo->getNewsByYear(2011);
foreach ($news as $item)
echo $item->getTitle() . " " . $item->getDateCreated();
这只是显示了它可以从2011年标题和创建日期找到的所有newsitems列表。
现在我的问题是,我只使用Entity对象的$ title和$ dateCreated属性。但所有其他属性也填充了,但我从不使用它们!所以这意味着如果getNewsByYear检索到3000条记录,那么它也会填充一个永远不会被使用的对象中的很多属性......这不应该是一个大问题......?这当然会变得更糟,当它的一个总和...
另一件我不确定的事情是;我的存储库是否总是需要返回一个实体对象?或者它也可以只返回一个字符串,当我只需要显示标题或类似的东西..?