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

国外公司查询网站太原市今天新闻

国外公司查询网站,太原市今天新闻,永久网站建设教程,卓越高职院建设网站一、概述 定义一个用于创建对象的接口#xff0c;让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 简单工厂模式#xff1a;又叫做静态工厂方法模式#xff0c;是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 1.当一个类不知道它所必须…一、概述 定义一个用于创建对象的接口让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 简单工厂模式又叫做静态工厂方法模式是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 1.当一个类不知道它所必须创建的对象的类的时候。 2.当一个类希望由它的子类来指定它所创建的对象的时候。 3.当类将创建对象的职责委托给多个帮助子类中的某一个并且希望将哪一个帮助子类是代理者这一信息局部化的时候。 三、参与者 1.Product定义工厂方法所创建的对象的接口或抽象类。 2.ProductA和ProductB实现Product接口。 3.Factory工厂类声明工厂方法该方法返回一个Product类型的对象。 Factory也可以定义一个工厂方法的缺省实现它返回一个缺省的Product对象。 它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法createProduct()可以被外界直接调用创建所需的产品对象。 4.Client客户端调用工厂类的createProduct()方法来创建产品实例。 四、类图 五、示例 Product接口或抽象类 public abstract class Product {protected abstract void work(); }public interface Product {void work(); } TeacherWork public class TeacherWork extends Product {Overrideprotected void work() {System.out.println(老师审批作业!);} } StudentWork public class StudentWork extends Product {Overrideprotected void work() {System.out.println(学生做作业!);} } SimpleFactory public class SimpleFactory {public Product create(String type) {Product product null;if (type.equals(teacher)) {product new TeacherWork();} else if (type.equals(student)) {product new StudentWork();}return product;} } Test Test public void test(){SimpleFactory simple new SimpleFactory();Product product simple.create(student);product.work(); }测试结果 Connected to the target VM, address: 127.0.0.1:1742, transport: socket 学生做作业! Disconnected from the target VM, address: 127.0.0.1:1742, transport: socket 六、实践 订阅调用工厂 /*** 消息订阅*/ private void messageSubscription(MapString, Object map) {asyncEventBus.register(new FxListenerFactory());asyncEventBus.post(map); } 工厂 /*** author lyonardo* Description* createTime 2022年11月21日 15:24:00*/ Slf4j Service public class FxListenerFactory {private final FxProductObjListener fxProductObjListener SpringUtil.getBean(FxProductObjListener.class);private final FxBomObjListener fxBomObjListener SpringUtil.getBean(FxBomObjListener.class);......Subscribepublic void send(MapString, Object map) {if (MapUtils.isEmpty(map)) {log.error(可售客户没有推送消息);return;}String json String.valueOf(map.get(json));log.info(json::json);JSONObject jsonObject JSON.parseObject(json);String eventType String.valueOf(jsonObject.get(eventType));String apiName String.valueOf(jsonObject.get(apiName));String dataId String.valueOf(jsonObject.get(dataId));switch (apiName){case DataObjectApiNameConstants.PRODUCTOBJ : fxProductObjListener.handle(eventType,dataId);break;case DataObjectApiNameConstants.BOMOBJ : fxBomObjListener.handle(eventType,dataId);break;......default: throw new OsRuntimeException(FailCodeEnum.FAIL.getCode(), 没有该订阅对象);} } FxProductObjListener  /*** author lyonardo* Description 纷享销客商品* createTime 2022年07月11日 19:59:00*/ Slf4j Service public class FxProductObjListener extends FxBaseListenerAbstractBaseTlkSuperEntityDO, FxProductInfoBO{Transactional(propagation Propagation.REQUIRED, rollbackFor Exception.class)public void handle(String eventType, String dataId) {...}Overrideprotected BaseTlkSuperEntityDO getConverter(FxProductInfoBO resource) {...return xx;} } 1.工厂模式和策略模式的最大区别是工厂模式提供方法、由工厂根据不同条件创建Bean而策略模式由调用方创建或注入Bean。 2.简单工厂模式违背了“开闭原则”。因为每加一个实现类都需要在工厂中添加代码。工厂方法模式可以解决此问题。
http://www.dnsts.com.cn/news/244618.html

相关文章:

  • 宁波网站建设哪个公司好建网站 就能开店
  • 交通设施东莞网站建设深圳网络公司网站
  • 响应式外贸网站案例网站备案 信息安全管理协议
  • 电子商务网站建设报告怎么写wordpress 评论回复邮件通知插件
  • 东莞市手机网站建设保定网站建设求职简历
  • 上海到北京飞机几小时vps wordpress mysql优化
  • 求个网站你懂我的意思吗如何网站制作
  • tap自助建站html企业网站开发
  • 公司想建网站mvc做的网站怎么连接数据库
  • 动态asp.net网站开发教程物流建设网站总结
  • 做数字艺术设计的网站seo做的最好的十个网站
  • 做一个推广网站大概多少钱怎样编辑网页
  • 南宁网站建设信息推荐丢盖网logo在线设计
  • 网站建设安全技术手机端网站如何优化
  • 北京比较好的网站开发公司wordpress附件插件
  • wordpress网络seo搜索引擎优化课程
  • 基础网站建设的实施步骤如何让搜索引擎收录网站
  • vue做网站如何优化seo域名解析在线工具
  • 桐乡哪里有做网站的做英语翻译兼职的网站
  • 山东网站建设运营关于网站内容建设的正确说法
  • 织梦网站制作教程做网站定金是多少钱
  • 花店网站模板无锡新区规划建设环保局网站
  • 排名好的移动网站建设收录批量查询
  • 全国卫生机构建设管理系统网站那家网站建设好
  • 网站的推广有哪些方式可以做公众号背景图的网站
  • 做问卷调查有哪些网站好网络广告推广员
  • 住房和城建设网站首页备案 网站名称
  • 厦门市同安区建设局公开网站电脑公司网站源码
  • 怎么设置网站字体WordPress支持邮箱登录
  • 全球最大设计网站html网页制作背景图片