Alternative Wege zum Schreiben auf J2ME eine Datei zu öffnen?
Frage
Ich habe ein bisschen von J2ME-Code geerbt, wo eine einzige Klasse die folgenden zwei Methoden in sich hat:
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();
}
Soweit ich das beurteilen kann, tun diese beiden Methoden genau das Gleiche. Seltsamerweise sind die Methoden direkt nebeneinander in der Klasse, was bedeutet, dass wer auch immer sie setzen dort wussten, was sie taten.
Sind diese Verfahren im Wesentlichen das gleiche? Kann ich loswerden einer von ihnen bekommen? (Oder vielleicht beides, darüber nachzudenken).
Lösung
Es scheint mir, dass getOutputStream
eine Exception aus, wenn die Datei nicht existiert.
Sie können nur loswerden, wenn niemand auf diesem Verhalten beruht.
Das übliche Refactoring in dieser Situation wäre einen zusätzlichen boolean Parameter createOutputStream
, um es wissen zu lassen, ob er die Datei erstellen soll, wenn es nicht bereits vorhanden ist.
Andere Tipps
ist FileConnector in einem optional verpacken nur, damit Sie kann nicht auf seine Existenz verlassen.