Serveix per adaptar codi de tercers que no podem tocar a una interficie que ens convingui.
En aquesta sessió, s'ens donen dues llibreries (de mentida)
per comprimir un fitxer d'audio OpenOffice (odt) a formats pdf i html.
Cada llibreria té la seva pròpia interficie en diferents aspectes:
Sovint passa que, per entendre codis molt llargs, posem, al començament d'un grup de comandes, un comentari explicant què fa aquest mètode (pe. /* Ara generem els nous formats */). Aquest és el simptoma més clar de que aquest codi ha d'anar a un mètode el nombre del qual indica el mateix comentari: pe. converteixOriginal(). El mètode que contenia el codi, s'entendrà millor i si volem els detalls de la implementació només cal anar a la definició de la funció. Els metodes petits s'entenen millor, i permeten simplificacions mitjançant early returns.
Per extreure un mètode, necessitem parar atenció al fluxe de dades identificant quines dades modifica y quines dades llegeix de cara a definir els paràmetres. Tambe podem fer el refactoring invers: substituir la crida pel contingut del mètode. Podem fer i desfer: els testos ens donen la seguretat de que ho fem bé.
Per afegir nova funcionalitat usarem dues llibreries de mentida. Us hem afegit els següents fitxers al repositori:
src/externalLibs/libOpenOffice2Html.hxx src/externalLibs/libOpenOffice2Pdf.hxx
Aquest és el diagrama de classes simplificat del sistema resultant