java简单工厂模式

时间:2020-12-01 19:02:53

在学习模式过程中,感觉只看书,自己不写完全记不住,此微博只是为了自己学习时理解的东西写下来,一方面学习画UML图。

本人也只是边学习边写的,有问题的地方,望大神指正。

首先进入一个简单工厂模式。

理解:以一个园子为背景,园子中有花、草、树等,还有园丁,客户只需要告知园丁种植何种植物,园丁则会种值出相应的植物。

UML图:


java简单工厂模式


对应代码:

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 CreatePlantTypeUndefinedException extends RuntimeException{

public CreatePlantTypeUndefinedException(String message){
super(message);
}
}

public class Client {
public static void main(String[] args) {

IPlant flower = PlantFactory.createPlant(1);

IPlant grass = PlantFactory.createPlant(2);

IPlant tree = PlantFactory.createPlant(3);

}
}


简单工厂模式差不多就完成了,一下节应该是抽象工厂模式。