在学习模式过程中,感觉只看书,自己不写完全记不住,此微博只是为了自己学习时理解的东西写下来,一方面学习画UML图。
本人也只是边学习边写的,有问题的地方,望大神指正。
首先进入一个简单工厂模式。
理解:以一个园子为背景,园子中有花、草、树等,还有园丁,客户只需要告知园丁种植何种植物,园丁则会种值出相应的植物。
UML图:
对应代码:
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);
}
}
简单工厂模式差不多就完成了,一下节应该是抽象工厂模式。