设计模式-简单工厂模式

简单工厂模式介绍

    简单工厂模式又称为静态工厂方法模型,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

案例描述

订购一个披萨,披萨的种类有cheese披萨,greek披萨,实现针对输入披萨的种类,返回披萨的制作流程。

1.创建披萨抽象类

/**
 1. 披萨抽象类
 */
public abstract class Pizza {
    /**
     * 披萨名字
     */
    protected String name;

    /**
     * 准备原材料,不同的pizza不一样
     */
    public abstract void prepare();

    public void bake() {
        System.out.println(name + " baking");
    }

    public void cut() {
        System.out.println(name + " cuting");
    }

    public void box() {
        System.out.println(name + " boxing");
    }

    public void setName(String name) {
        this.name = name;
    }
}
  1. 创建对应披萨种类的类,继承披萨抽象类
/**
 * 希腊披萨
 */
public class GreekPizza extends com.design.example.factory.simplefactory.pizzastore.pizza.Pizza {

    @Override
    public void prepare() {
        System.out.println(" 给希腊披萨 准备原材料");
    }
}
/**
 * 奶酪披萨
 */
public class CheesePizza extends com.design.example.factory.simplefactory.pizzastore.pizza.Pizza {

    @Override
    public void prepare() {
        System.out.println("  给制作奶酪披萨 准备原材料 ");
    }
}
  1. 创建简单工厂类
/**
 1. 简单工厂类
 */
public class SimpleFactory {

    /**
     * 订购披萨(增加orderType,返回对应的Pizza对象)
     * @param orderType 输入的披萨种类
     * @return
     */
    public Pizza createPizza(String orderType) {
        System.out.println("使用简单工厂模式");
        Pizza pizza = null;
        if(orderType.equals("greek")) {
            pizza = new GreekPizza();
            pizza.setName("希腊披萨");
        } else if(orderType.equals("cheese")) {
            pizza = new CheesePizza();
            pizza.setName("奶酪披萨");
        }
        return pizza;
    }
}
  1. 调用方法
public static void main(String[] args) {
		SimpleFactory simpleFactory = new SimpleFactory();
        /**
         * 制作奶酪披萨
         */
        simpleFactory.createPizza("cheese");
    }

通过简单工厂类,根据接收到的披萨类型,返回对应的披萨对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值