3

getAllContacts(userId)과 같은 방법으로 저장소 (ContactsRepository)이 있다고 가정합니다. (ContactsRepository) 서버에서 모든 데이터를 가져옵니다. 먼저 getAllContacts(userId) 메서드를 호출 한 후이 데이터를 캐시에 저장하려고합니다. 내 질문은 같은 (ContactsRepository)에서 캐싱 메커니즘을 실현해야하는 곳이며, getAllContacts(userId) 메서드를 다시 호출하여 데이터를 캐싱하거나 다른 위치 (어쩌면 리포지토리)에 데이터를 넣어야합니다.DDD : 서버로부터 수신 한 집합 객체 캐싱

답변

2

리포지토리를 사용하여 캐시 또는 데이터베이스에서 데이터를 얻을 수 있습니다. 저장소 클래스에 업데이트 메소드가 있으면 효과적으로 캐시 항목을 무효화 할 수 있습니다.

당신은 따라서 저장소 내에서 캐시에 대한 액세스 캡슐화 할 수 있습니다 : http://martinfowler.com/eaaCatalog/repository.html

저장소에 캐싱을 구현하는 또 다른 예 : http://ardalis.com/building-a-cachedrepository-via-strategy-pattern

+0

답을 구하기 위해 나는 이미 두 번째 링크 에서처럼 깨달았다. – tikhop

1

당신은 그것을 캐시 할 수 있지만 실행하면 cache coherency을 잊지 마세요를 하나 이상의 저장소가있는 도메인 논리 (예 : 여러 컴퓨터에서.

+0

thx는 조언을 구하지만 내 경우는 아닙니다. – tikhop