设计模式--简单工程模式
简单工厂模式
属于创建性模式,功能:又一个工厂对象决定创建出哪一种产品类的实例
是最简单最实用的模式
下面用披萨工厂举例:
// pizza 父类
public class Pizza {
private String name = "";
public void setName(String name){
this.name = name;
}
public void prepare(){
}
public void bake(){
System.out.println(name + " 烧烤中。。。");
}
public void cut(){
System.out.println(name + " 切割。。。");
}
public void box(){
System.out.println(name + " 打包。。。");
}
}
子类PepperPizza:
public class PepperPizza extends Pizza {
@Override
public void prepare() {
super.prepare();
System.out.println("胡椒披萨,准备中。。。");
}
}
子类GreekPizza:
public class GreekPizza extends Pizza {
@Override
public void prepare() {
super.prepare();
System.out.println("希腊披萨,准备中。。。");
}
}
pizza的简单工厂:
public class SimpleFactory {
// 根据 orderType 返回对应的 Pizza 对象
public Pizza createPizza(String orderType) {
Pizza pizza = null;
System.out.println("使用简单工厂模式");
if (orderType.equals("greek")) {
pizza = new GreekPizza();
pizza.setName(" 希腊披萨 ");
} else if (orderType.equals("cheese")) {
pizza = new CheesePizza();
pizza.setName(" 奶酪披萨 ");
} else if (orderType.equals("pepper")) {
pizza = new PepperPizza();
pizza.setName("胡椒披萨");
}
return pizza;
}
//简单工厂模式,也叫静态工厂模式,上下基本一样的, 我一般用这个
public static Pizza createPizza2(String orderType){
Pizza pizza = null;
System.out.println("使用简单工厂模式 2");
if (orderType.equals("greek")) {
pizza = new GreekPizza();
pizza.setName(" 希腊披萨 ");
} else if (orderType.equals("cheese")) {
pizza = new CheesePizza();
pizza.setName(" 奶酪披萨 ");
} else if (orderType.equals("pepper")) {
pizza = new PepperPizza();
pizza.setName("胡椒披萨"); }
return pizza;
}
}