自從現在一年以來,我一直在使用工廠模式。有時候我只覺得真正的優勢只是乾淨的代碼。讓我解釋一下,工廠模式的真正優勢
interface A {
public void test();
}
class B implements A {
public void test() {
}
}
class C implements A {
public void test() {
}
}
class Factory {
public static A getObject(String name){
if(name.equalsIgnoreCase("B")){
return new B();
}else if(name.equalsIgnoreCase("C")){
return new C();
}
return new B();
}
}
public class Test {
public static void main(String[] args) {
A a = Factory.getObject(args[0]);
// if i dint use factory pattern
A nofactory=null;
if(args[0].equalsIgnoreCase("B")){
nofactory= new B();
}else if(args[0].equalsIgnoreCase("C")){
nofactory= new C();
}
}
}
從上面的代碼我覺得工廠模式只是美化代碼,請讓我知道如果我的理解是錯誤的。
看看JDBC作爲經典學校的例子。這是一個和所有的工廠模式。它允許您通過交換JDBC驅動程序(其實現通過工廠加載)在不同的數據庫上使用相同的JDBC代碼。 – BalusC
Related/possible dupe:http://stackoverflow.com/a/7550752 – BalusC
問題是什麼? –