2016-07-07 4 views
1

Hybris는 성능 고려 사항에있어 비판적 일 수 있기 때문에 변환기가 인구 집단을 사용해야하며 반대의 경우도 마찬가지라고 말해줍니다.populator 내부에서 컨버터를 사용하는 것이 좋은 습관입니까?

하지만 hybris 코드에 파고 있어요 때 DefaultAbstractOrderEntryPopulator, 나는 또한 ProductPopulator 같은 다른 populators를 사용 Populators을 찾을 수있다 converters.And 배선되어 ProductFeatureListPopulator 같은 populators을 볼 수 있습니다.

나는 다음 링크를 읽을 수 있지만 나는 populators의 내부 populator 또는 populator 내부 변환기를 사용하는 방법에 대해 아무것도 찾을 수 없습니다 그래서

Wiki Hybris - Converters and Populators

Wiki Hybris - DTOS best practice

Wiki Hybris 6

, 우리가 할 수있는 Hybris가하는 것처럼 populator 내부의 변환기를 사용합니까? 인구 집단 내의 인구와 인구?

답변

0

기본적으로 구체적인 방법은 : 콘크리트 변환기 클래스를 쓰지 말고 결코 직접 생성자를 호출하지 마십시오.

그러나 이것은 제품이 확장 성을 위해 제작 된 방법이며 솔직히 원하는대로 할 수 있습니다.

+0

원하는대로 할 수 없습니다. 많은 컨버터를 populator 내부에 연결하면 불필요한 객체 생성과 가비지 콜렉션의 긴 변환 계층 구조로 이어질 것입니다. –

1

나는이 질문에 대한 나의 견해를 말하고 싶다. 변환기 및 배포자와 작업 할 때 흔히 저지르는 실수 중 하나는이를 혼동하는 것입니다.

변환기는 DTO와 채우기기를 작성하여 DTO를 채 웁니다. 우리는 변환기 내부에서 변환기를 사용하고 우리가 그렇게해야한다는 것을 완전히 확신해야합니다.

우리는 변환기를 사용하는 채워진 사람이 길면 성능이 저하 될 수 있습니다. 예를 들어 는 C1-> P1-> C2-> P2-> C3-> P3 ....

내가 따라 할 수있는 가장 좋은 방법이라고 생각 :

1)가 이미 완료 컨버터의주의 우리는 우리의 DTO 다른 DTO 또 다른 의존성이있는 경우합니다 (modifyPopulatorList를 사용하여 예를 들어) 기존의 변환기

2) 우리의 populator를 추가해야하는 경우 그 종속 정말 필요한 경우, 및 체크 인하는 우리는 우리 자신을 요청해야합니다. 두 번째 DTO가 많은 장소에서 사용되는 경우에 따라 결정할 것입니다. 또는 아닙니다. 당신이 단 하나의 사람이라면 p를 병합 할 수 있습니다. 하나의 DTO에서만 로퍼를 사용하고 두 개의 다른 변환기를 사용하지 않아야합니다.

3) 그것은 우리가 정리해 WIKI HYBRIS - Facades and DTOs

에서 볼 수있는 병렬 differents의 컨버터를 사용하는 다른 가능성은 우리의 컨버터 및 populators의 디자인은 우리의 Responsibility는, 그리고 우리는 최고의 디자인을 얻을 수있다 성능 문제를 피할 수 있습니다.

관련 문제