所谓的工厂方法其实最主要的特点就是多态和抽象
下面上代码吧:
public interface IPlant {
}
public class Flower implements IPlant {
public Flower(){
System.out.println("生产出一朵花");
public class Grass implements IPlant {
public Grass(){
System.out.println("生产出一株草");
}
}
public class Tree implements IPlant {
public Tree(){
System.out.println("生产出一棵树");
}
}
}}
public class PlantFactory {
public static IPlant createPlant(int type) {
IPlant plant = null;
switch (type){
case 1 :
plant = new Flower();
break;
case 2:
plant = new Grass();
break;
case 3:
plant = new Tree();
break;
default:
throw new CreatePlantTypeUndefinedException("未定义");
}
return plant;
}
}
public class Client {
public static void main(String[] args) {
IPlant flower = PlantFactory.createPlant(1);
IPlant grass = PlantFactory.createPlant(2);
IPlant tree = PlantFactory.createPlant(3);
}
}
就是类中的对象会根据你要随机生成,但是构造器的名字不同,所以不能用构造器