저는 현재 내 응용 프로그램의 지속성 프레임 워크를 고안 중입니다 ... 그리고 추상화를위한 두 가지 해결책을 논의하고 있습니다.데이터 계층에서 올바른 추상화 양은 무엇입니까?
옵션 1. 먼저, 간단 (하지만 아마도 더 많은 데이터베이스에 결합은 2 계층 접근 방식이다.이 방식에서, 데이터 매퍼 데이터베이스에서 데이터를 끌어와 비즈니스 엔티티를 구축 할 수 있습니다.
거친 다이어그램 워크 플로우의 :
UserEntity <= UserMapper => Database
옵션 2 두 번째, 그리고 더 유연한 (하지만 가능 과잉) 접근 방식은 3 계층 접근 방식이 방식에서, 우리는 전적으로에게 말을하는 것입니다 작업의 제 3 목적이있다. 데이터베이스를 검색하고 데이터 매퍼 (Data Mapper)에게 데이터를 보내고 누가 객체를 생성 하는지를 확인합니다.
거친 다이어그램 :
UserEntity <= UserMapper <= UserDataRetriever => Database
는 물론 첫 번째 옵션의 장점은 간단하고 작성하는 것이 더 빠른 점이다. 두 번째 옵션의 이점은 DB (및 관련 쿼리)에 대한 DataRetriever의 연결 만 변경해야하므로 내 지속성 메서드를 변경하는 것이 더 쉽다는 것입니다.
이 사이트의 크기가 매우 빠르게 커지기 때문에 안티 패턴 랜드에 들어 가지 않고도 가장 유연한 옵션을 선택하고 싶습니다.
어느 것이 더 낫습니까?
응답 해 주셔서 감사합니다. -이 경우 repo는 db/w로 말하려고합니다. 엔티티 용으로 만들어진 각각의 클래스 집합입니까? 나는 그 자체에 대해서 더 자세히 연구 할 것이다. – johnnietheblack
그것은 각 루트에 대해 빌드 된 클래스 세트이며 그것은 집합이다. 즉 Order + OrderLines + OrderHistory 등 하나 – jgauffin