2016-07-07 137 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的設計是我們的責任,我們必須以獲得最佳的設計他們可以避免 性能問題。

相關問題