2016-09-20 1 views
1

Ich verwende ModelMapper, um gerade Karten zwischen Objekten zu erstellen.Soll die ModelMapper-Instanz wiederverwendet werden, um die zwischengespeicherten TypeMaps zu nutzen?

ModelMapper mapper = new ModelMapper(); 
// TypeMap created 
mapper.map(sourceObj, destObj); 

mapper = new ModelMapper(); 
// TypeMap is recreated 
mapper.map(sourceObj, destObj); 

bemerkte ich im Quellcode, dass, wenn ein TypeMap nicht zwischen sourceObj und destObj existiert, daß sie die TypeMap in getOrCreate Verfahren zwischenzuspeichern.

Soweit ich diese Cache sagen kann, ist auf die Mapper-Instanz gebunden, was bedeutet, dass, wenn ich die sourceObj-destObj für zweites Mal mit einer neuen ModelMapper Instanz zur Karte habe, dass es die TypeMap neu erstellen müssen.

Ich gehe davon aus das eine ziemlich teure Operation ist, sagen, wenn ich eine Sammlung von sourceObj-destObj bin abbildet. Dies führt mich zu der Schlussfolgerung, dass ich die ModelMapper-Instanz wiederverwenden sollte.

Ist diese Schlussfolgerung richtig?

danke

Antwort

3

Ja. Es gibt sogar einen Abschnitt in der FAQ darüber:

Sollte ich meine ModelMapper-Instanz wiederverwenden?

Sofern Sie nicht unterschiedliche Zuordnungen zwischen denselben Typen benötigen, empfiehlt es sich, dieselbe ModelMapper-Instanz erneut zu verwenden. Wenn Sie einen Abhängigkeitsinjektionscontainer verwenden, können Sie dies erreichen, indem Sie ModelMapper als Singleton konfigurieren.

+0

Vielen Dank! Irgendwie hat diese Sektion verpasst. – Avner

Verwandte Themen