工廠設計模式
抽象工廠,用於規定具體工廠需具備的功能(方法)
GirlFriend.java
public abstract class GirlFriend {//抽象工廠,規定了girlfriend需要具備的方法,也用於上轉型調用
public abstract void speak();
}
三個具體工廠
WangGirl.java
public class WangGirl extends GirlFriend {//"生產"WangGirl的工廠
public void speak() {//抽象方法的實現
System.out.println("My name is 王**");
}
}
LiuGirl.java
public class LiuGirl extends GirlFriend {//"生產"LiuGirl的工廠
public void speak() {
System.out.println("My name is 劉*");
}
}
GaoGirl.java
public class GaoGirl extends GirlFriend {//"生產"GaoGirl的工廠
public void speak() {
System.out.println("My name is 高*");
}
}
簡單工廠類SimpleFactory,java
public class SimpleFactory {//簡單工廠類,根據傳入的參數返回對應的類實例
final static int TYPE_wang=1;
final static int TYPE_liu=2;
final static int TYPE_gao=3;
public static GirlFriend createGirlFriend(int type) {
switch(type) {
case TYPE_wang:
return new WangGirl();
case TYPE_liu:
return new LiuGirl();
default:
return new GaoGirl();
}
}
}
包含main方法的測試類TestSimpleFactory.javapublic class TestSimpleFactory {
public static void main(String[] args) {
GirlFriend gf=SimpleFactory.createGirlFriend(SimpleFactory.TYPE_wang);//傳入1,返回new WangGirl()
gf.speak();//對象的丄轉型
gf=SimpleFactory.createGirlFriend(SimpleFactory.TYPE_gao);//傳入3,返回new GaoGirl()
gf.speak();//對象的丄轉型
}
}