オブジェクト向け六原則のインタフェース分離原則
3073 ワード
IOストリームを操作するときは、最後にストリームを閉じるときはtry/catch、ストリームが多いときはtry/catchがたくさんあります.以下に示します.
今日はオブジェクト向けインタフェース分離の原則を見て、このように処理できるようになりました(ツールクラスは1つ増えましたが、コードは明らかに見栄えがよくなりました:
このとき上のput()メソッドはこのように書くことができます.コードは簡潔で見やすいのではないでしょうか.また、このCloseUtilsは閉じられるオブジェクトにも適用でき、コードの再利用性を保証しています.
private void put(String path, Bitmap bitmap)
{
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(path);
bitmap.compress(CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}finally
{
if(fos != null)
{
try
{
fos.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
今日はオブジェクト向けインタフェース分離の原則を見て、このように処理できるようになりました(ツールクラスは1つ増えましたが、コードは明らかに見栄えがよくなりました:
public final class CloseUtils
{
private CloseUtils()
{
}
public void closeQuietly(Closeable closeable)
{
if(closeable != null)
{
try
{
closeable.close();
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}
このとき上のput()メソッドはこのように書くことができます.コードは簡潔で見やすいのではないでしょうか.また、このCloseUtilsは閉じられるオブジェクトにも適用でき、コードの再利用性を保証しています.
private void put(String path, Bitmap bitmap)
{
FileOutputStream fos = null;
try
{
fos = new FileOutputStream(path);
bitmap.compress(CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e)
{
e.printStackTrace();
}finally
{
if(fos != null)
{
CloseUtils.closeQuietly(fos);
}
}
}