设计模式之工厂模式

Java设计模式 之简单工厂

基本介绍

  • 简单工厂模式是属于创建式模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一张产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式
  • 简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为。
  • 在软件开发中,当我们会用到大量的创建某周、某类或者某批对象时,就会使用到工厂模式。

简单工厂模式代码:

package factory.SimpleFactory.Pizza;

/**
 * @Author:wmy
 * @Date:2019/12/27
 * @Description:
 **/
public class SimpleFactory {

    public Pizza createPizza(String orderType){
           Pizza pizza = null;
        System.out.println("使用简单工厂模式创建披萨");
            if(orderType.equals("cheese")){
                pizza = new CheesePizza();
                pizza.setName("奶酪披萨");
            }else if(orderType.equals("greek")){
                pizza = new GreekPizza();
                pizza.setName("希腊披萨");
            }else if(orderType.equals("pepper")){
                pizza = new PepperPizaa();
                pizza.setName("辣椒披萨");
            }

            return  pizza;

    }

}


package factory.SimpleFactory.Pizza.order;

import factory.SimpleFactory.Pizza.CheesePizza;
import factory.SimpleFactory.Pizza.GreekPizza;
import factory.SimpleFactory.Pizza.Pizza;
import factory.SimpleFactory.Pizza.SimpleFactory;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @Author:wmy
 * @Date:2019/12/27
 * @Description:
 **/
public class OrderPizza {
/*
    public OrderPizza(){
        Pizza pizza = null;
        String orderType;
        do {
            orderType = getType();
            if(orderType.equals("cheese")){
                pizza = new CheesePizza();
                pizza.setName("奶酪披萨");
            }else if(orderType.equals("greek")){
                pizza = new GreekPizza();
                pizza.setName("希腊披萨");
            }else{
                break;
            }
            pizza.prepare();
            pizza.bake();
            pizza.cut();
            pizza.box();
        }while (true);



    }*/

    public OrderPizza(SimpleFactory simpleFactory){

        setSimpleFactory(simpleFactory);

    }

    SimpleFactory simpleFactory;
    Pizza pizza = null;

    public void setSimpleFactory(SimpleFactory simpleFactory) {
            String orderType = "";
            this.simpleFactory = simpleFactory;  //设置简单工厂对象
        do {
           orderType =getType();
           pizza = this.simpleFactory.createPizza(orderType);
           if(pizza !=null){
               pizza.prepare();
               pizza.bake();
               pizza.cut();
               pizza.box();
           }else{
               System.out.println("披萨订购失败");
               break;
           }
        }while (true);
    }


    public  String getType(){


        try {
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("请输入订购的披萨种类 :");

            String str = bufferedReader.readLine();
            return str;
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }

    }
}



工厂模式

在这里插入图片描述





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值