インターフェイスに実装を書く
無名クラスを使うとインターフェイスに実装を書くことができます。
import java.io.File; /** * 一時ファイルディレクトリ解決サービス * * @version $Revision:$ * @author $Author:$ */ public interface TemporaryDirectoryService { /** * 一時ファイルディレクトリを取得する。 * @return 一時ファイルディレクトリ */ File getTemporaryDirectory(); /** * {@link TemporaryDirectoryService}の基本実装。 */ TemporaryDirectoryService DEFAULT = new TemporaryDirectoryService () { public File getTemporaryDirectory() { String path = System.getProperty( "tmpfolder", "/tmp" ); return new File(path); } }; }
テストのために差し替え可能にしないといけないけれど、別ファイルにするのが面倒くさいような軽いサービス(一時ファイルディレクトリ解決サービスや現在日時を返すサービスなど)を作るのにたまに使います。