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

  • Besnik Ibrahimi

    Besnik Ibrah

    27 Mart 2010
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • Tome Rodrigo

    Tome Rodrigo

    9 Temmuz 2006