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

wordpress国际主题泉州关键词优化报价

wordpress国际主题,泉州关键词优化报价,米拓做的网站如何改代码,优创意设计平台一、概述 定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类。 简单工厂模式:又叫做静态工厂方法模式,是由一个工厂对象决定创建出哪一种产品类的实例。 二、适用性 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.hkea.cn/news/305737/

相关文章:

  • 小型企业网站系统cilimao磁力猫最新版地址
  • 铁岭网站建设移动网站广东网站seo
  • 网站模板插件sem和seo
  • 用wordpress制作网站模板沈阳seo
  • 优化一个网站多少钱宜昌网站seo
  • 刚做的网站怎么才能搜索到枸橼酸西地那非片功效效及作用
  • 罗湖区网站公司专业模板建站
  • 哪有备案好的网站国产系统2345
  • 网站开发怎么让别人看到最新营销模式有哪些
  • ssm网站开发源码百度推广多少钱一个月
  • 手游门户网站建设appstore关键词优化
  • 齐河网站开发seo服务内容
  • 北京微信网站建设费用想卖产品怎么推广宣传
  • 网站上线的步骤厦门网站推广公司哪家好
  • 网站做app的软件有哪些百度一下你就知道下载
  • 界面设计的重要性百度seo关键词排名推荐
  • 股票做T网站直播营销
  • 北京手机网站建设公司排名技术优化seo
  • wordpress可爱的主题seo优化教程
  • 自己可以申请网站做外卖吗网站描述和关键词怎么写
  • 公司网站网页设计seo站长工具推广平台
  • 重庆南岸营销型网站建设公司哪家专业真实的网站制作
  • 郑州企业网站建设兼职推广渠道
  • 网站哪些数据优化大师的作用
  • 政府网站集约化建设总结营销软文推广平台
  • 学网站开发跟那个专业最相近百度站长平台注册
  • 网站开发python电脑培训班有哪些科目
  • 惠州响应式网站哪家好云盘搜索
  • spring做网站合肥seo排名收费
  • 做58网站怎么赚钱二十个优化