簡單的工廠模式:其實也叫做靜態工廠方法,這種模式的核心特點是通過傳進去的參數來判斷創造怎麼樣的實例
現在演示一個Demo:
1.建立一個父類
public class Sport {
public void play() {
System.out.println("sport");
}
}
2.有幾個子類繼承了這個父類
public class Swim extends Sport{
@Override
public void play() {
System.out.println("Swim");
}
}
public class Basketball extends Sport {
@Override
public void play() {
System.out.println("Basketball");
}
}
3.通過簡單的工廠模式去創造實例
public class SportFactory {
public static Sport createSport(int choice) {
Sport sport = null;
switch(choice) {
case 1 :
sport = new Swim();
break;
case 2 :
sport = new Basketball();
break;
}
return sport;
}
}
4.StartUp
public class StartUp {
public static void main(String[] args) {
Sport sport = SportFactory.createSport(2);
sport.play();
}
}
這樣的靜態工廠模式的優點就是自己負責了實現創建實例的內部邏輯,別人只負責調用就行了,但是這種模式的缺點就是裏面的內部邏輯是事先考慮好的,如果要增加新的邏輯,新的類,這個模式可能就不能應付過來了。