私はDJClayworthの回答に同意する傾向がありますが、あなたの質問に回答するには、シングルトンパターンを実装する最良の方法は列挙型を使用することです。
public enum ImageDownloaderWrapper
{
INSTANCE;
public static final ImageDownloader IMAGE_DOWNLOADER;
private ImageDownloaderWrapper()
{
IMAGE_DOWNLOADER = new ImageDownloader();//this is where you would initialize it... looks like it has a default constructor
}
}
インスタンスを取得するには:
ImageDownloaderWrapper.INSTANCE.IMAGE_DOWNLOADER.download(...
静的インポートを利用することもできます。
import static some.package.structure.ImageDownloaderWrapper.INSTANCE;
次に、それは少し簡単です:
INSTANCE.IMAGE_DOWNLOADER.download(...
さまざまな戦略を説明するには、ImageDownloaderを拡張し、そのサブクラスの戦略を処理するための適切なロジックを追加する必要があると思います(IMAGE_DOWNLOADERのタイプも作成したサブクラスに対応している必要があります)。