Pregunta

He heredado un poco de código J2ME donde una sola clase tiene los dos métodos siguientes en él:

public DataOutputStream getOutputStream(String filePath) throws IOException
{
    return Connector.openDataOutputStream(filePath);
}


public DataOutputStream createOutputStream(String filePath) throws IOException
{
    FileConnection fc = (FileConnection)Connector.open(filePath);

    if(fc.exists())
        return fc.openDataOutputStream();
    else
        fc.create();
    return fc.openDataOutputStream();
}

Por lo que yo puedo decir, estos dos métodos hacen exactamente lo mismo. Curiosamente, los métodos son uno al lado del otro en la clase, lo que implica que quien los puso allí sabía lo que estaban haciendo.

Son estos métodos esencialmente el mismo? ¿Puedo deshacerme de uno de ellos? (O probablemente ambas cosas, de pensar en ello).

¿Fue útil?

Solución

Me parece que getOutputStream será una excepción si no existe el archivo.

Sólo puede deshacerse de él si nadie se basa en que el comportamiento.

La refactorización habitual en esa situación sería tener un parámetro booleano añadido a createOutputStream para hacerle saber si se debe crear el archivo si no existe ya.

Otros consejos

FileConnector está disponible en una paquete opcional solamente , por lo que no se puede confiar en su existencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top