2013-07-16 3 views
2

PHP로 MVC 애플리케이션이 있습니다. 내 'M'에는 도메인 객체, 팩토리 및 매퍼가 포함됩니다. 모델은 서비스 계층을 통해 액세스됩니다.내 공장에서 모든 개체 인스턴스를 만들어야합니까? 새 엔티티 포함?

분명히 Mappers는 데이터베이스를 검색 할 때 Factories를 사용하여 개체를 만듭니다. 그러나 팩토리는 모든 '새로운'엔티티에 대한 객체도 생성해야합니다. 새로운 사용자를위한?

나는 답이 예라고 생각하지만 확인하고 싶다. 공장을 사용하여 기본값을 작업 중 하나로 제공합니다.

측면에서 : '새로운'엔티티와 데이터베이스에서 검색된 엔티티를 구분할 용어가 있습니까? (나는 'new'를 사용하는 것을 좋아하지 않는다. 왜냐하면 new 키워드가 모든 객체 인스턴스보다 우선하기 때문이다.

답변

1

예. 확실히. 팩토리는 새 항목에 대한 객체를 만들어야합니다. 이것이 공장 패턴입니다. 비 데이터 집약 엔티티를 포맷하기위한 피보나치 시퀀스를 고려해보십시오.

+0

감사합니다. stack_temp. 확실하지 않은 (전혀) 당신이 '피보나치 시퀀스에 대한 서식 ....' –

1

마음에 가장 먼저 떠오르는 점은 공장에서해야 할 일이 복잡하다는 것입니다. 즉, 복잡한 개체를 만들거나 개체 생성을 숨기는 것이지만, 고려해야 할 두 가지 점을 언급하고자합니다.
내가 제안하려고하는 요점과 용어는 Eric Evans 우수 도서 Domain Driven Design에서 가져온 것입니다.

  1. 기업 공장은 새로운 추적 ID를 할당하지 않습니다 재구성에 사용됩니다.

  2. 다르게 불변의 위반을 처리 할 객체를 재구성 공장.

마지막 지점은 공장 저장 매체에서 개체를 복원하는 경우 다음 약간 객체 상태에을 (예 : 손상된 개체) 오류를 가지고 가면 안된다 아니라 근본적으로 그들과 거래를 강조 .

용어로는 새 개체 만들기 및 저장 개체에 대한 저장 개체 또는 복원 개체 사용을 말합니다.

관련 문제