2017-03-22 3 views
1

저는 몇 년 동안 laravel로 작업 해 왔습니다. 내 전통적인 접근 방식은 응용 프로그램 아래에 클래스 폴더를 가지고 클래스에 내 데이터 액세스 기능을 넣어왔다. 컨트롤러를 깨끗하게 유지하고 클래스를 활용하여 더러운 작업을 수행하십시오.리포지토리 패턴을 사용할 때의 전통적인 클래스

최근 한 동료가 리포지토리를 발견했으며이를 읽었으며 혼란 스럽습니다.

저장소를 활용하면 내 앱/클래스/폴더와 "전통적인"클래스를위한 공간이 아직 남아 있습니까? 건강한 균형을 유지할 수 있습니까? 리포지토리 디자인 패턴에 관해서 고려해야 할 이유가 있습니까?

모범 사례에서 이것에 대해 아무 말도하지 않습니까?

감사

답변

1

는 디자인 패턴과 아이디어는 도메인 모델 (데이터베이스 및/또는 캐시 인터페이스) 지속성 로직을 분리하는 것입니다.

기본적으로 "메모리 내"개체에 대한 변경은 "전통적"클래스에서 유지되어야합니다. 리포지토리는 데이터베이스에서 데이터를 가져 오거나 변경하지만 비즈니스 논리가 포함 된 데이터베이스에 대한 변경을 포함하지 않는 데이터를 조작하는 비즈니스 로직이있는 경우 (데이터의 형식을 지정하거나 수학 연산을 수행하는 경우) 도메인 클래스에 보관하십시오.

모범 사례 (특히 단일 책임 원칙)는 개체 데이터로 캡슐화 할 수있는 비즈니스 논리에서 리포지토리 또는 데이터 매핑 논리를 분리하도록 권장합니다.

+0

이것은 리포지토리에 대한 느낌이었습니다. "기억 속에서"나는이 사실을 이해하는데 정말로 도움이된다. 좋은 답변 주셔서 감사합니다. –