当前位置: 首页 > news >正文

c 做网站后台西安贝贝特网络科技有限公司

c 做网站后台,西安贝贝特网络科技有限公司,python报修网站开发源码,免费发帖推广《重学Java设计模式》之 建造者模式 《重学Java设计模式》之 原型模式 《重学Java设计模式》之 单例模式 模拟发奖多种商品 工程结构 奖品发放接口 package com.yys.mes.design.factory.store;public interface ICommodity {/*** Author Sherry* Date 14:20 2024/11/6**/voi…

《重学Java设计模式》之 建造者模式

《重学Java设计模式》之 原型模式

《重学Java设计模式》之 单例模式

模拟发奖多种商品

工程结构

奖品发放接口

package com.yys.mes.design.factory.store;public interface ICommodity {/*** @Author Sherry* @Date 14:20 2024/11/6**/void sendCommodity(String uId, String commodityId, String bizId);
}

购物卡发放实现类

package com.yys.mes.design.factory.store.impl;import com.yys.mes.design.factory.store.ICommodity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;@Service
@Slf4j
public class CardCommodityService implements ICommodity {@Overridepublic void sendCommodity(String uId, String commodityId, String bizId) {//购物卡log.info("购物卡发放成功!");}
}

优惠券发放实现类

package com.yys.mes.design.factory.store.impl;import com.yys.mes.design.factory.store.ICommodity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;import java.util.Map;@Service
@Slf4j
public class CouponCommodityService implements ICommodity {@Overridepublic void sendCommodity(String uId, String commodityId, String bizId) {//优惠券发放log.info("优惠券发放成功!");}
}

实物发放实现类

package com.yys.mes.design.factory.store.impl;import com.yys.mes.design.factory.store.ICommodity;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;@Service
@Slf4j
public class GoodsCommodityService implements ICommodity {@Overridepublic void sendCommodity(String uId, String commodityId, String bizId) {//实物商品log.info("实物商品发放成功!");}
}

奖品类型工厂

通过 Map<String, ICommodity> 来存储所有的实现类。Spring 会自动将所有实现了 ICommodity 接口的 Bean 注入到这个 Map 中。我们可以通过传入类型(例如 "card")来获取对应的实现类。

package com.yys.mes.design.factory.config;import com.yys.mes.design.factory.store.ICommodity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.util.Map;@Component
public class CommodityFactory {private final Map<String, ICommodity> commodityServices;@Autowiredpublic CommodityFactory(Map<String, ICommodity> commodityServices) {this.commodityServices = commodityServices;}// 根据类型返回对应的ICommodity实现public ICommodity getCommodityService(String type) {ICommodity commodityService = commodityServices.get(type + "CommodityService");if (commodityService == null) {throw new IllegalArgumentException("未知的奖品类型: " + type);}return commodityService;}
}

调用工厂

package com.yys.mes.design.factory.config;import com.yys.mes.design.factory.store.ICommodity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class StoreFactory {private final CommodityFactory commodityFactory;@Autowiredpublic StoreFactory(CommodityFactory commodityFactory) {this.commodityFactory = commodityFactory;}public void distributeCommodity(String type, String uId, String commodityId, String bizId) {// 通过工厂获取对应的ICommodity实现ICommodity commodityService = commodityFactory.getCommodityService(type);commodityService.sendCommodity(uId, commodityId, bizId);}
}

测试验证

package com.yys.mes.design.factory.Controller;import com.yys.mes.design.factory.config.StoreFactory;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/send")
public class ExampleController {@Resourceprivate StoreFactory storeFactory;@GetMapping("/distribute")public String distributeCommodity(@RequestParam String type, @RequestParam String uId,@RequestParam String commodityId, @RequestParam String bizId) {storeFactory.distributeCommodity(type, uId, commodityId, bizId);return "奖品发放成功!";}
}

http://www.yayakq.cn/news/267640/

相关文章:

  • 建网站 xyzwordpress怎么搬运
  • 构建网站无障碍建设彭州建设局网站
  • 做网站美工排版自己做微网站制作教程
  • 框架网站怎么做wordpress portfolio
  • 扁平风格网站欣赏个人网站备案时间
  • 网站第一步建立网站推广的四个阶段
  • 产品目录网站模板小程序appid
  • 重庆简易注销在什么网站做软件开发项目管理系统解决方案
  • 做竞价网站服务器多少钱软件培训公司排名
  • 网站备案 icp备案北京住房和城乡建设官方网站
  • 政法网 网站建设wordpress 添加自定义栏目面板
  • 谷城县城乡建设局网站wordpress 数据库替换
  • 深圳那个网站建设wdcp怎么上传做好的网站
  • dedecms菜谱网站源码关键词优化下拉管家
  • 建立网站需要技术吗wordpress登录地址
  • 学计算机网站建设js进入网站时有指导怎么做
  • wordpress4.7.4南宁网站建设优化服务
  • 怎样做淘宝券网站嘉兴备案网站建设
  • 网站后台挂马怎么处理女装店网站源码
  • 广州网站建设报价单网站如何被谷歌收录
  • 做类似知乎网站云南建设网站首页
  • 个人网站一年多少钱凡客优品官网
  • wordpress作者函数长春seo外包方案
  • 在线视频网站a一级爰a做免费解决方案
  • 广西医科大学网站建设王烨飞变形计
  • 网站开发需要什么资料开网店的详细步骤教程
  • 个人公众号网站建设seo视频教程
  • 对于网站建设提出建议南京小程序开发制作
  • 百度一下百度搜索网站西安百度推广优化托管
  • 国内知名网站天津的网页设计公司