简单工厂模式:定义一个工厂类,根据参数不同返回不同的类的实例, 被创建的实例通常都有共同的实例 ; 适用于创建对象比较少的场景
示例代码:
public class Factory {
public Fruit factoryMehtod(String arg) {
if (arg.equals("apple")) {
return new Apple();
} else if (arg.equals("peach")) {
return new Peach();
}
return null;
}
}
public abstract class Fruit {
// 水果名字
String name;
}
public class Apple extends Fruit {
public Apple() {
super();
// TODO Auto-generated constructor stub
System.out.println("生产苹果");
}
}
public class Peach extends Fruit {
public Peach() {
super();
// TODO Auto-generated constructor stub
System.out.println("生产peach");
}
}
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Factory factory = new Factory();
// 选择生成苹果
factory.factoryMehtod("apple");
// 选择生成桃子
factory.factoryMehtod("peach");
}
}
UML图例:
简单工厂模式.png