質問

私は、単一のクラスは、その中に次の二つの方法がありますJ2MEのコードのビットを継承しました

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();
}

私の知る限り、これらの2つの方法がまったく同じことを行います。奇妙に、方法がそれらを置く誰でも、彼らが何をしていたかを知っていたことを示唆し、クラスで隣同士に右されます。

これらの方法は、本質的に同じですか?私はそれらの一つを取り除くことはできますか? (または、おそらく両方とも、それについて考えて)ます。

役に立ちましたか?

解決

ファイルが存在しない場合getOutputStreamが例外をスローしますように私には思える。

誰がその動作に依存していない場合にのみ、それを取り除くことができます。

そのような状況では通常のリファクタリングは、それが存在しない場合は、ファイルを作成するかどうかを知っているようにcreateOutputStreamに追加ブール・パラメータを持っているだろう。

他のヒント

FileConnectorはオプションパッケージにのみに使用可能ですので、あなたその存在に依存することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top