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

如东网站开发windows11优化大师

如东网站开发,windows11优化大师,快站如何做网站,ps做网站显示内容参考一、概述 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 简单工厂模式:又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 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(Map<String, 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(Map<String, 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 FxBaseListenerAbstract<BaseTlkSuperEntityDO, 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.yidumall.com/news/97825.html

相关文章:

  • 企业网络配置方案个人博客seo
  • 产品推广网站设计下载百度网盘app最新版
  • 怎么用源码做网站视频互动营销成功案例
  • 商业网站开发岗位需求分析怎么样进行网络推广
  • 模板网站建设公司兰州网络推广与营销
  • 做网站常用字体web网页模板
  • 动态网站建设包括哪些全国防疫大数据平台
  • 建网站教程视频下载杭州疫情最新情况
  • 为什么要做外贸网站谷歌官方app下载
  • 做暧暧网站在线看深圳seo公司助力网络营销飞跃
  • 广源建设集团网站竞价托管代运营
  • 硬件工程师需要学哪些搜索seo优化
  • 鹤壁专业做网站公司淘宝seo排名优化软件
  • 京东网站建设需求分析报告注册城乡规划师
  • 外包 网站开发公司百度点击软件找名风
  • 精美的网页昆明seo建站
  • wordpress能恢复数据库seo推广有哪些方式
  • 以域名做网站关键词常州网站制作维护
  • 网站优化怎么学站长工具无内鬼放心开车禁止收费
  • 呼伦贝尔网站制作免费加客源软件
  • 做相亲网站的安全责任百度seo sem
  • 用vs session做网站网站排名怎么做上去
  • 陕西西安网站建设公司哪家好百度seo软件
  • 免费做网站的网址有哪些如何在百度上发布自己的文章
  • 假怀孕单子在线制作图片windows优化大师是自带的吗
  • 广州做网站 信科网络cms自助建站系统
  • 西安网站建设系统开发搜索引擎排行榜
  • 网站开发的五个阶段网络推广经验
  • 沈阳大十字街附近做网站公司百度推广代理商利润
  • wordpress 安装ftp九幺seo工具