又叫做静态工厂方法(staticFactory Method) 模式,但不属于23中设计模式之一
简单工厂模式的实质是由一个工厂类根据传入的参数,动态的决定应该创建哪一个产品类
Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一标识来获取Bean对象,但是否是在传入参数前创建还是传入参数后创建要根据情况来定
代码实现
public interface Milk {
/**
* 获取一个标准产品
* @return
*/
public String getName();
}
public class Mengniu implements Milk {
@Override
public String getName() {
return "蒙牛";
}
}
public class Sanlu implements Milk{
@Override
public String getName() {
return "三鹿";
}
}
public class Telunsu implements Milk {
@Override
public String getName() {
return "特仑苏";
}
}
public class Yili implements Milk {
@Override
public String getName() {
return "伊利";
}
}
工厂类
public class SimpleFactory {
public Milk getMilk(String name){
if("特仑苏".equals(name)){
return new Telunsu();
}else if("伊利".equals(name)){
return new Yili();
}else if("蒙牛".equals(name)){
return new Mengniu();
}else {
System.out.println("不能生产您所需的产品");
return null;
}
}
}
public class SimpleFactoryTest {
public static void main(String[] args) {
//这个new的过程实际上一个比较复杂的过程
//有人民币及不需要自己new了
// System.out.println(new Telunsu().getName());
//小作坊式的生产模式
//用户本身不再关心生产的过程,而只需要关心这个结果
//假如:特仑苏、伊利、蒙牛
//成分配比都是不一样的
SimpleFactory factory = new SimpleFactory();
//把用户的需求告诉工厂
//创建产品的过程隐藏了,对于用户而且完全不清楚是怎么产生的
System.out.println(factory.getMilk("AAA"));
//知其然,知其所以然,知其所必然
}
}