Sessió B3: Adaptadors i Associacions Polimorfiques

Objectius

Patró Adapter

Serveix per adaptar codi de tercers que no podem tocar a una interficie que ens convingui.

Estructura del Patro Adapter

Alerta 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: Farem servir adaptadors per oferir a la resta d'objectes una interfície convenient, que a més ens permeti tractar ambdós conversors uniformement.

Refactoring Extreure Mètode

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é.

Noves llibreries i nous tests funcionals

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

Tasques

  1. Passar tots els tests funcionals TestsConversors que us hem afegit al repositori, fent desenvolupament dirigit pels tests (unitaris). És molt important que aneu seguint aquesta guia pas a pas.
  2. Aquest és el diagrama de classes simplificat del sistema resultant

    Situacio al final de la sessió

  3. [Opcional] Escriure una breu documentació del disseny usant diagrames uml (per exemple de classes, de seqüència) per les parts més complicades. Posar-los a un directori diferent del src/

Valid XHTML 1.0!