课堂讨论answer:
考虑使用工厂模式生成ImageStore实例.这样就可以将调用者和具体ImageStore解耦.
例:
public class ImgStoreFactory {
private ImgStoreFactory(){
}
public static ImageStore create(Class<?> clz){
if (clz == AliyunStore.class){
return new AliyunStore();
}else if (clz == PrivateYunStore.class){
return new PrivateYunStore();
}else {
throw new IllegalStateException("..");
}
}
public static void main(String[] args) {
ImageStore store = ImgStoreFactory.create(AliyunStore.class);
store.dosth();
}
}
另外有一点不太同意作者的说法:
上节课作者将Contract翻译为"协议",
我认为是不恰当的.
在计算机领域, 通常使用Protocol代表协议.
个人认为Contract更恰当的翻译是"契约".
展开