工厂模式

1、简单工厂模式
2、抽象工厂模式

  • 简单工厂模式:
    将需要定制化开发的部分提出,由工厂统一管理,根据请求返回需要的对象。
    在这里插入图片描述

  • 抽象工厂方法
    定义一个负责创建一组产品的接口,这个接口内的每一个方法都负责创建一个具体的产品,同时我们利用实现抽象工厂的子类来提供这些具体的做法,所以在抽象工厂中是利用工厂方法来实现生产的方式。
    在这里插入图片描述

  • 抽象工厂示例主要代码

package com.lonewolf.service.factory.abstractfactory;

import com.lonewolf.service.factory.abstractfactory.entity.Pizza;
import com.lonewolf.service.factory.abstractfactory.service.PackPizza;

/**
 * @Author: Xiangyong.zeng
 * @Date: 2019-08-30 14:33
 * @Description:
 */
public class test {

    static abstract class PizzaStore {
        /**
         * [下个披萨订单]
         * @author xiangyong.zeng
         * @param type
         * @return com.lonewolf.service.factory.simplefactory.entity.Pizza
         * @date 2019-08-30 11:41
         */
        public final Pizza orderPizza(String type){
            Pizza pizza;

            pizza = createPizza(type);

            PackPizza packPizza = new PackPizza();
            packPizza.cut(pizza);
            packPizza.packagePizza(pizza);

            return pizza;
        }

        /**
         * [description]
         * @author xiangyong.zeng
         * @param type
         * @return com.lonewolf.service.factory.simplefactory.entity.Pizza
         * @date 2019-08-30 11:41
         */
        protected abstract Pizza createPizza(String type);
    }


   static class CSPizzaStore extends PizzaStore {

        // @Autowired
        // CSPizzaFactory csPizzaFactory;

        @Override
        public Pizza createPizza(String type) {
            Pizza pizza;
            CSPizzaFactory csPizzaFactory = new CSPizzaFactory();
            pizza = csPizzaFactory.createPizza(type);
            return pizza;
        }
    }

    static class CSPizzaFactory {

        public Pizza createPizza(String type){
            Pizza pizza = new Pizza();
            pizza.setName(type);
            System.out.println("createpizza"+type);
            return pizza;
        }


    }


    public static void main(String[] args) {
        PizzaStore pizzaStore = new CSPizzaStore();
        pizzaStore.orderPizza("CSPizza");
    }
}

以上对工厂模式的理解有误差的地方烦请支出,谢谢

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值