저는 저장소 질문의 원칙을 이해하려고합니다. 하지만 나는 다른 질문을 우연히 발견했다. 나에게 저장소 패턴은 오버 헤드를 많이 발생시키는 것처럼 보인다.저장소 패턴 및 오버 헤드 ..?
예 :
내 Entity 클래스는 다음과 같습니다
는 (당연히 간체) 저장소는 다음과 같습니다class newsEntity
{
private $title;
private $content;
private dateCreated;
private $author;
private $category; // just 1 category possible for simplicity
# .. Getter and Setter methods ...
}
class newsRepository
{
public function getNewsByYear ($year)
{
$newsList = array();
// Some ORM code which fills $newsList with newsEntity objects
}
}
클라이언트 코드가 같은 형태 this :
$repo = new newsRepository();
$news = $repo->getNewsByYear(2011);
foreach ($news as $item)
echo $item->getTitle() . " " . $item->getDateCreated();
이것은 단순히 제목과 생성 날짜가있는 2011 년부터 찾을 수있는 모든 뉴스 항목의 목록을 보여줍니다.
이제 문제는 Entity 객체의 $ title 및 $ dateCreated 속성 만 사용한다는 것입니다. 그러나 다른 모든 속성도 채워 지지만 결코 사용하지 않습니다! 즉, getNewsByYear가 3000 개의 레코드를 가져 오면 사용되지 않는 객체의 많은 속성을 채 웁니다 ... 큰 문제가 아니어야합니다 ...? 이 코스는 그 집계가 더욱 어려워 질 때가 있습니다 ...
또 다른 것은 확실하지 않습니다. 내 리포지토리가 항상 Entity 객체를 반환해야합니까? 아니면 그냥 제목이나 아무것도 표시해야 할 때 그것은 또한 문자열을 반환 할 수 있습니다 .. ???