anchor.diff:  image::classDiagramConverter.png[background]
   
   [%step]
  -* empfholen ein reichhaltiges Domainmodel bei grossen Schnittstellen AKA AKM!!), das nicht nach aussen gegeben wird
  -* wir haben keines konvertieren auf neueste Version des Services (langsameres löschen)
  +* Konvertieren auf internes Model ODER neueste Serviceversion
   * muss vollständig sein (vereinfacht die Unterstüzung verschiedener Version immens)
  -* besonders nützlich beim löschen, da bei Konvertierung auf neue Schnittstellenversion Informationen gelöscht werden
   können
   
  +[NOTE.speaker]
  +--
  +* Internes Model besonders beim Löschen nützlich
  +* Konvertierung einfacher
  +--
   
   === Adapterpattern zwischen Service Versionen (Sequenzdiagram)
   
   image::sequenceConverter.png[background]
   
  +=== Adapterpattern zwischen Versionen eines Services (Modelmapper)
  +
  +[%step]
  +* Einsatz einer Bibliothek, die automatisch Klassen in einander konvertiert
  +* Beispiel: modelmapper, dozzer,
  +* Vorteil: OK für simple Schnittstellen, da schnell aufgesetzt
   
   
   === Adapterpattern zwischen Versionen eines Services (Modelmapper)
   
   [%step]
  -* konvertiert zwischen einer alten Version zu einer neuen Version
  -* Vorteil: für einfache Schnittstellen OK, da schnell aufgesetzt
   * Nachteil: Probleme bei Typhierachien
  -* Nachteil: Automatismus des Mappings teilweise nicht durchschaubar
  +* Nachteil: Mappingmechanismus nicht durchschaubar
   * Nachteil: Manuelle Anpassungen am Mapping kompliziert
   * Nachteil: Teilweise Performanceprobleme
  -* Nachteil: COnvertierung müsste getestet werden
  +* Nachteil: Konvertierung müsste getestet werden
   
   [NOTE.speaker]
   --
  
positive.code:     }
  ----
  
  
  === Adapterpattern zwischen Versionen eines Services (händisch)
  
  [%step]
  * TODO: Abbildung wie COnverter funktioniert
  * konvertiert zwischen einer alten Version zu einer neuen Version
  * Vorteil:
  * Nachteil:
  
  [NOTE.speaker]
  --
  * wir generieren den Mapper mit Javapoet und Java Reflektions
  * passen an, wenn generiertes Mapping nicht passt
  --
  
  === Adapterpattern zwischen Versionen eines Services (händisch)
  
  
negative.code: 
  === Adapterpattern zwischen Versionen eines Services (Modelmapper)
  
  * DEMO
  .Converter.map
  [source,java]
  ----
  