SORU
3 Ocak 2013, PERŞEMBE


Daha temiz bir yaklaşım için pek çok 'eğer başka bir' ifadeleri dönüştürme

Benim kod burada mimeType MIME bazı tip eşittir, eğer, eğer, eğer, belirli bir dönüşüm yapacağız algılar

public void convertToMp3(File src, File target,String mimeType){
    if(mimeType.equals("audio/mpeg")){
        ...
    }else if(mimeType.equals("audio/wav")){
        mp3ToWav();
    }else if(mimeType.equals("audio/ogg")){
        ...
    }else if(...){
    ... //More if and else here
}

Bir sürü var çünkü benim kod kısaltılmış vareğer başkabirçok temizlenmesi için uygundur Ne ifadelereğervebaşkayaeğer başkatablolar?

CEVAP
3 Ocak 2013, PERŞEMBE


Converter bir arayüzü var. Sonra Mime tipi: her biri için bir sınıf oluşturabilirsiniz

public interface Converter {

    public void convertToMp3();
    public void convertToOgg();

}

public class MpegConverter implements Converter {

    public void convertToMp3() {
        //Code here
    }

    public void convertToOgg() {
        //Code here
    }

}

Her bir dönüştürücü için böyle bir sınıf gerekir. O zaman böyle bir harita ayarlayabilirsiniz

Map<String, Converter> mimeTypeMap = new HashMap<String, Converter>();

mimeTypeMap.put("audio/mpeg", new MpegConverter());

Sonra convertToMp3 yöntemi böyle olur:

Converter converter = mimeTypeMap.get(mimeType);
converter.convertToMp3();

Bu yaklaşımı kullanarak kolayca gelecekte farklı dönüştürücüler ekleyebilirsiniz.

Tüm test edilmemiş, muhtemelen derleme değil, ama fikir olsun

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • NicoleGrippo

    NicoleGrippo

    14 Kasım 2006
  • Project Mooncircle

    Project Moon

    6 Aralık 2009