我的代码在这里检测the mimeType
是否等于某种MIME类型,如果是,它将进行一定的转换
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
}
我缩短了代码,因为它包含许多其他if语句,哪种设计模式适合于删除许多if and else or else if语句?
你可以有一个Converter
接口。然后,你可以为每个Mimetype创建一个类,如下所示:
public interface Converter {
public void convertToMp3();
public void convertToOgg();
}
public class MpegConverter implements Converter {
public void convertToMp3() {
//Code here
}
public void convertToOgg() {
//Code here
}
}
每个转换器都需要一个这样的类。然后,你可以像这样设置地图:
Map<String, Converter> mimeTypeMap = new HashMap<String, Converter>();
mimeTypeMap.put("audio/mpeg", new MpegConverter());
然后,你的convertToMp3方法将如下所示:
Converter converter = mimeTypeMap.get(mimeType);
converter.convertToMp3();
使用这种方法,你将来可以轻松添加不同的转换器。
全部未经测试,可能无法编译,但是你明白了
这里我的代码检测< code>mimeType是否等于某个MIME类型,如果是,它将进行某种转换 我把代码缩短了,因为它有很多else if语句,什么设计模式适合去掉很多if和else或者else if语句?
问题内容: 当您使用很多术语时,以下语句看起来非常混乱: 有没有一种更干净的方式来执行相同的操作,我希望我的代码尽可能可读。 注意:x,y和z只是任何长度的任何字符串的占位符。如果条件中的每个条件进行或运算,则此处可能有20个长度可变的字符串术语 问题答案: Set stuff = new HashSet (); stuff.add(“x”); stuff.add(“y”); stuff.add(
问题内容: 像这样的MySQL查询: 我想将其转换为雄辩的laravel,但我很困惑。因为存在很多陈述。存在,,,等你可以看到上面的查询 如何将其转换为雄辩的laravel? 问题答案: 主要是原始查询: 尝试这个:
问题内容: 我发现的最短方法是: 我特别关注两个因素:可读性和可移植性。对于Python 3,第二种方法很难看。但是,我认为它可能是向后兼容的。 我错过了一种更短,更干净的方式吗?我目前使用一个lambda表达式来使用新功能对其进行修复,但这也许是不必要的。 问题答案: 答1: 要将字符串转换为Python 2或Python 3中的字节序列,请使用字符串的方法。如果您不提供编码参数,则该参数对于数
我试过这种格式 但这似乎不起作用。
问题内容: 我在标准库上进行了查找,但未发现类似问题。因此,有没有一种方法可以在不滚动我自己的函数的情况下进行以下操作?如果没有内置的方法,那么如果有人编写了精美的函数,奖励积分就可以了。 问题答案: 将用作: