유일한 차이점은 Active Record는 데이터 컨테이너 클래스에 CRUD 메소드가 있고 Repository 패턴은 데이터 컨테이너와 CRUD 메소드에 대해 별도의 클래스를 사용하지만 분명히 틀렸어.액티브 레코드와 리포지토리 패턴의 차이점은 무엇입니까?
활성 레코드와 저장소 패턴의 차이점은 무엇입니까? 어떤 패턴을 사용해야합니까?
유일한 차이점은 Active Record는 데이터 컨테이너 클래스에 CRUD 메소드가 있고 Repository 패턴은 데이터 컨테이너와 CRUD 메소드에 대해 별도의 클래스를 사용하지만 분명히 틀렸어.액티브 레코드와 리포지토리 패턴의 차이점은 무엇입니까?
활성 레코드와 저장소 패턴의 차이점은 무엇입니까? 어떤 패턴을 사용해야합니까?
기본적으로 귀하의 가정은 정확합니다. 저장소 및 DAO 패턴은 지속성 문제를 Active Record가 내부화하는 동안 외부화합니다. 실제적으로 활성 레코드 클래스가 내부적으로 지속성 문제를 제공 한 저장소 인스턴스로 주입 된 구현을 보았습니다.
액티브 레코드 패턴 사용에 대한 가장 큰 이유는 간단합니다. 도메인 개체는 유지되는 방법 (또는 유지되는 경우에도)에 신경 쓰지 않아야합니다. 저장소 패턴은 지속성 관련 문제를 외부화하고 외부 서비스로 제공함으로써 도메인 객체에 대한 지속성 무지를 제공합니다.
IMO, 리포지토리 패턴을 사용하면 트랜잭션 및 명령 일괄 처리에 대해 생각할 수 있기 때문에 데이터베이스에 대한 쿼리 수를 줄일 수 있습니다. 액티브 레코드 패턴을 사용하면 쉽게 호출 할 수 있습니다. save(), .fetch() 등을 무분별하게 포기합니다. 데이터베이스는 일반적으로 병목 현상이 발생할 수 있으므로 불필요한 쿼리로 인해 악화되지는 않습니다.