在populator中使用转换器是一个好习惯吗?

时间:2016-07-07 15:00:40

标签: hybris

Hybris告诉我们转换器应该使用填充器而不是反之亦然,因为这对于性能考虑至关重要。

但是当我在使用hybris代码时,您可以看到像 DefaultAbstractOrderEntryPopulator ProductFeatureListPopulator 这样的填充程序 是布线转换器。我也发现使用其他populator的Populators,如 ProductPopulator

我阅读了以下链接,但我找不到任何关于在populator中使用populator或populator内的转换器的信息:

Wiki Hybris - Converters and Populators

Wiki Hybris - DTOS best practice

Wiki Hybris 6

那么,我们可以像Hybris一样在populator中使用转换器吗?和populator中的populator?

2 个答案:

答案 0 :(得分:1)

我想提出我的观点来回答这个问题。使用转换器和填充器时的一个常见错误是混淆它们。

转换器创建填充DTO的DTO和填充程序。 当我们要在populator中使用转换器并完全确定时,我们必须非常小心 我们需要这样做。

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

我认为最好的做法是:

1)请注意转换器已经完成,并且如果我们必须将我们的populator添加到现有转换器中 (例如使用modifyPopulatorList)

2)如果我们的DTO与其他DTO有另一种依赖关系 我们应该问自己这种依赖性是否真的有必要。我将根据第二个DTO是否在很多地方使用来决定 或者不是。因为如果你是唯一一个使用它的人,也许你可以只在一个DTO中合并属性,并避免使用两个不同的转换器。

3)其他可能性我们可以看到并行使用不同的转换器   WIKI HYBRIS - Facades and DTOs

总而言之,我们的转换器和填充器的设计是我们的责任,我们必须得到最好的设计,以避免它们 性能问题。

答案 1 :(得分:0)

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

但这就是产品的可扩展性,坦白说,你可以做任何你喜欢的事情。