2016-07-07 99 views
1

Hybris告诉我们,转换器应该使用populators,而不是反之亦然,因为对于性能考虑可能至关重要。在populator中使用转换器是一个好习惯吗?

但是,当我的hybris代码我挖你可以看到像populators DefaultAbstractOrderEntryPopulatorProductFeatureListPopulator其 的布线converters.And我还发现使用其他populators Populators如ProductPopulator

我阅读下面的链接,但我不能对使用转换器的组装器或组装器内populators里面找到什么:

Wiki Hybris - Converters and Populators

Wiki Hybris - DTOS best practice

Wiki Hybris 6

因此,我们可以像Hybris一样使用populator内部的转换器呢?和populators内populators?

回答

0

基本上这样做的方法是:从不写一个具体的转换器类,也不要直接调用populator。

但是,这是产品如何构建的可扩展性,坦率地说,你可以做任何你喜欢的事情。

+0

你无法做任何你喜欢的事情。如果你在populator中连接了很多转换器,它将导致不必要的对象创建和垃圾收集。 –

1

我想给我回答这个问题的观点。使用转换器和populator时常遇到的一个错误就是混淆它们。

转换器创建填充DTO的DTO和填充符。 我们必须非常小心,当我们要使用populator里面的转换器时,并且要确保我们需要这样做。

如果我们有一个使用转换器的长连接器,我们可能会有性能风险。例如 C1-> P1-> C2-> P2-> C3-> P3 ....

我认为遵循最佳做法是:

1)注意转换器都已经完成和ckeck如果我们有我们的填充器添加到(使用modifyPopulatorList例如)现有的转换

2)如果我们的DTO与其他DTO 另一个依赖,我们应该问自己,如果这种依赖确实有必要。我会根据第二个DTO是否在许多地方使用 来决定。因为如果你是唯一使用它的人,也许你可以合并p仅在一个DTO中存在并且避免具有两个不同的转换器。

3)其他可能性是使用型动物变换器并联,因为我们可以在 WIKI HYBRIS - Facades and DTOs

归纳起来看,我们的转换器和populators的设计是我们的责任,我们必须以获得最佳的设计他们可以避免 性能问题。

相关问题