设计模式之-简单工厂模式

设计模式之-简单工厂模式


又叫做静态工厂方法(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"));

        //知其然,知其所以然,知其所必然

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值