Monday, September 27, 2010

patron Factory

Llevando el mantenimiento de una aplicacación. Me comentaron cambiar el envío de los datos, estos datos son un conjunto de ficheros que se tienen que enviar entre 2 computadores. Antes se realizaba a través de un FTP pero ahora se realizaza con rutas locales de red. Todos sabemos que el día de mañana es posible que te digan que lo dejaras como estaba antes. Pues habrá que dejarlo preparado.

Como el envío de los ficheros no está centralizado, es decir, esta disperso en toda la apliacion, y no tienes una clase que centraliza este envío, (yo no lo hice) tienes que deditacte a bucar, modificar y probar todo el código de tu aplicación.
Como solucion propongo el centralizarlo y además de crear un interfaz para el envio de fichero común. Que no sepa el usuario que tipo de envio esta realizarndo. Se envía y punto. Todo ello configurable en un fichero properties

//generamos un interface comun a todas las clases de transporte
public interface TransportFile {
 
   void connect() throws SocketException, IOException;
   void copyFile(String str_rutaOrigen, String str_rutaDestino) throws IOException;
   void disconnect() throws IOException;
   void get(String str_rutaLocal, String str_rutaRemota) throws IOException;
   boolean isConnected();

}
//implementamos cada uno de los metodos de envio de fichero, FTP, unidades de red, etc
 public class LocalFile implements TransportFile{

}
 //creamos una factoria que crea la implementación que necesitemos
public class FactoryTransportFile {

    public FactoryTransportFile(String ftpDireccion,String ftplogin,String ftppassword){
    }
    public TransportFile create(){

    }
}

Pros de esta solución:
No tienes que rehacer todo tu código. solamente donde generas el patron factoria.
Esta preparado para cambiar a otro tipo de métod de transporte de ficheros.

No comments:

Post a Comment