tengo una duda con el patron adapter, haber si alguien puede orientarme.
miren tengo dos clases,
Directory y FTPRemoteDir
Directory entiende 
contends q retorna una coleccion de Directory.
copy(f:file), copia un archivo.
FtpRemoteDir
ls retorma una coleccion de FtpRemoteDir.
transfer(f:file) tranfiere un archivo.
se tiene q adaptar una solución para poder usar un fileManager de manera que ambos entiendan los mismos mensajes.
mi solucion es hacer un adapter que herede de directory q conosca una instancia de ftpRemoteDir, de manera q adapter le haga las consultas al objeto adaptado.
el fileManajer entiende explorar(directorio). 
 
 Tdirectory
 private
   datos:collections;{una coleccion de directorios locales}
 public
   contenst:collections;
   copy;
tftpRemoteDir
  private
   datos:collections;{una coleccion de ftpRemotedir}
  public
    ls:coleccions;
    transfer;
adapter
 private
   adaptee:TftpRemoteDir;
 public
   contens:collection;{una coleccion de adapters}
   copy;
adapter>>contends
  |temp adaptador col|
   col:=OrderedCollection new.
   temp:=self adaptee ls;
   temp do:[:r |adaptador:=adapter new.
                       adaptador setAdaptee:r.
                       col add:adaptador.]
   ^col.{retorna una colleccion de adaptadores para seguir navegando}
adapter>>copy:file
   self adaptee transfer:file.
|explorer adapter directory|
explorer:=filemanager new.
adapter:=Adapter new:dir.
directory:=TDirectory new:dir.
explorer explorar(adapter).
explorer explorar(directory).
bueno opiniones, solo pretendan q no existe una manera de cambiar las clases Tdirectory y ftpRemoteDir. y q el fileManager debe entender los mensajes de uno de los dos. 
 
 espero se entienda. 
