I can convert my models to DTO directly in facade layer. Then why should i have a converter?
Its Simple. We may need to convert a product (model) from multiple places. We convert it on product listing page, product detail page, order confirmation page etc. Hybris follows oops concept..So it is good to have a separate class to do this conversion for us, from all of these places.
Converters creates an object of DTO. While populators breaks the code for filling up data in DTO. This is required because, not each DTO needs all attributes of a model. Thus by having multiple populators, we can write more efficient code. Reverse populators are used to fill data in model from DTOs.
The image shows two paths followed (a and b) by two different facades using same converter and different poplators.
We should always use spring injected converters and populators.