답변

5

기본적으로 귀하의 가정은 정확합니다. 저장소 및 DAO 패턴은 지속성 문제를 Active Record가 내부화하는 동안 외부화합니다. 실제적으로 활성 레코드 클래스가 내부적으로 지속성 문제를 제공 한 저장소 인스턴스로 주입 된 구현을 보았습니다.

액티브 레코드 패턴 사용에 대한 가장 큰 이유는 간단합니다. 도메인 개체는 유지되는 방법 (또는 유지되는 경우에도)에 신경 쓰지 않아야합니다. 저장소 패턴은 지속성 관련 문제를 외부화하고 외부 서비스로 제공함으로써 도메인 객체에 대한 지속성 무지를 제공합니다.

2

IMO, 리포지토리 패턴을 사용하면 트랜잭션 및 명령 일괄 처리에 대해 생각할 수 있기 때문에 데이터베이스에 대한 쿼리 수를 줄일 수 있습니다. 액티브 레코드 패턴을 사용하면 쉽게 호출 할 수 있습니다. save(), .fetch() 등을 무분별하게 포기합니다. 데이터베이스는 일반적으로 병목 현상이 발생할 수 있으므로 불필요한 쿼리로 인해 악화되지는 않습니다.

관련 문제