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

建站代理域名购买哪个网站最好

建站代理,域名购买哪个网站最好,广州手机网站建设价格,WordPress仿虎嗅主题1.模板设计模式#xff1a;模板设计模式是一种常见的设计模式#xff0c;主要作用是对 具体操作的 共有代码块进行提取#xff0c;提升代码复用性。那么说道代码复用性#xff0c;首先想到的是抽象类而不是接口。因为抽象类的本质就是为了代码复用#xff0c;抽象类既可以…1.模板设计模式模板设计模式是一种常见的设计模式主要作用是对 具体操作的 共有代码块进行提取提升代码复用性。那么说道代码复用性首先想到的是抽象类而不是接口。因为抽象类的本质就是为了代码复用抽象类既可以包含抽象方法也可以包含具体方法。在模板设计模式中我们将 需要将原本共有的具体操作抽离并封装在抽象类的具体方法中。让抽象类的具体操作来实现需要被复用的逻辑。而其余的抽象方法是不同业务的 个性各个业务可以按照自己的方式进行重写。这部分特性在模板设计模式中是为具体方法服务的。2.开发优惠券推送功能优惠券推送功能是根据excel导出方式来进行的。目前我们有一张优惠券画像平台根据用户特性选取出符合这张优惠券的用户从而导出一个excel表格表格中装入的是符合发券特征的用户。我们的优惠券推送功能就是根据读取excel表格中的用户信息将这张优惠券统一推送给目标用户。对于优惠券发放我们考虑到了定时发放和立即发放两种情况。由于定时发放使用传统的定时任务需要建立线程定时去扫描全表造成数据库的较大开销所以考虑使用RocketMQ来进行定时任务。RocketMQ的延时消息任务需要发送地址、消息以及发送时间三个参数。 public SendResult syncSendDelayTimeMills(String destination, Message? message, long delayTime) {return this.syncSend(destination, message, (long)this.producer.getSendMsgTimeout(), delayTime, DelayMode.DELAY_MILLISECONDS); }这是对应的rocketMQ的定时消息发送接口需要destinationmessagedelayTime2.1发送地址对于不同的业务建立不同的group消费者会根据group从消息队列中接收自己想要的信息。2.2消息需要注意的是Message?是指上是Spring中的包import org.springframework.messaging.Message;Message通过MessageBuilder进行构建这部分内容就是消息实体。2.3发送时间delayTime就是指延迟发送的时间。3.如何抽离出模板设计模式由于我们的业务不仅有延时发送任务还有立即发送任务所以会为这两种任务设计消息发送类AbstractCommonSendProduceTemplate很显然这是共有的抽象类。然后为不同的业务创建不同的实现类继承AbstractCommonSendProduceTemplate。3.1如何判断是立即发送还是延时发送我们只需要设计一个属性根据属性的值来判断即可。这可以解决立即发送和延时发送的矛盾。在业务层无需再进行判断。3.2具体如何完整实现模板设计模式在上面我们讲解了类的抽离我们现在需要找立即发送与延时发送的区别抽离出共性与特性。共性很显然就是都需要使用rocketMQ进行消息发送。1.特性对于立即发送而言需要的api不是syncSendDelayTimeMills而是syncSend public SendResult syncSend(String destination, Message? message, long timeout) {return this.syncSend(destination, message, timeout, 0); }timeout是超时时间。这是第一个特性。2.处理的业务模块不同在项目中推送优惠券模块的推送功能可以是定时推送也可以是立即推送包含这两种方式。而对于优惠券创建模块的定时销毁过期优惠券功能目前只需要定时任务方式。所以对于不同的业务我们需要抽离出不同的事件因为不同的业务需要的参数不同这里我们的项目定义了两个事件类CouponTaskExecuteEvent、CouponTemplateDelayEvent基于上述的共性与特性具体如何实现从顶层考虑我们的目的是实现发送消息代码的复用所以我们抽离代码的时候一般而言是先抽取主要逻辑对应抽象类中的具体方法。当具体方法因不同业务模块需要不同参数的时候我们再使用抽象方法对”个性“进行实现即可。也就是上述内容所说的抽象方法为具体方法服务的思想。因为定时和立即发送api不同所以我们需要一个dto类来传递一个属性来验证是定时发送还是立即发送。所以现在我们需要创建一个共有的DTO类来辅助具体任务的开发。DTO应该包含多个业务的主要内容所以对于这种模板设计模式而言尽量使业务功能相近不然在DTO设计时不好设计。 public class BaseSendExtendDTO {/*** 事件名称*/private String eventName;/*** 主题*/private String topic;/*** 标签*/private String tag;/*** 业务标识*/private String keys;/*** 发送消息超时时间*/private Long sentTimeout;/*** 具体延迟时间*/private Long delayTime; }事件名称用于分辨不同功能主题用于不同消息类型的监听如果是立即发送则delayTime为null用于判断信息类型。需要注意的是该DTO类只是用于辅助消息发送和真正的业务无关。比如说用于判别目前的任务是那个业务模块执行业务模块中的哪个任务任务的信息发送是什么模式等等。比如在public SendResult syncSendDelayTimeMills(String destination, Message? message, long delayTime) {return this.syncSend(destination, message,(long)this.producer.getSendMsgTimeout(),delayTime, DelayMode.DELAY_MILLISECONDS);}这个 发送api中DTO类只控制destination与delayTime而message是由事件决定的。4.总结通过上述DTO可以使得不同功能模块找到自己的实现方式比如立即发送和延时发送就是通过判别DTO中delayTime是否为null再比如通过Topic使得不同消费者只监听自己的内容。通过两个事件类对两个功能模块所需属性做了区分实质上最终传递的内容就是对应的事件。
http://www.pierceye.com/news/90903/

相关文章:

  • 在淘宝上开网店的详细步骤丹东网站seo
  • 网站建设外包公司招聘发帖子有哪些app平台
  • 网站风格发展趋势快设计
  • 稳定的网络建站咨询电话正规网站建设咨询电话
  • 请人代做谷歌外贸网站做购彩网站是怎么盈利的
  • 网站内链怎么删除wordpress如何下载
  • 深圳网站公司有了域名搭建网站详细步骤
  • 主机宝 建设网站怎么知道网站哪家公司做的
  • 1元做网站方案城乡建设住房建设厅官方网
  • 厦门网站网页设网页素材html
  • 活字格能开发企业网站吗商品门户网站解决方案
  • 网站虚拟主机内存不足能不能链接美工怎么做网站效果图
  • 网站版建设软件开发培训班有哪些
  • 舟山市城市建设档案馆网站武夷山景区网站建设特点
  • 北京建设工程质量总站网站哈尔滨网站只做
  • 做外单网站有哪些网站开发工程师需要什么技术
  • 跨境电商自己做网站引流会宁县建设局网站
  • 对于学校网站建设的建议google推广公司哪家好
  • 国外做装饰画的网站公司logo设计图片欣赏
  • 宿州外贸网站建设公司工信部资质查询网站
  • 动漫做暧视频网站用手机制作动画的app
  • 网站备案 域名证书帝国cms响应式网站模板
  • 一个电信ip做网站卡不卡企业网站建设排名资讯
  • 网站建设论文的开题报告制作一个app软件需要多少时间
  • 我们做的网站是优化型结构做二手车网站需要什么
  • 湛江网站建设保定公司互联网信息服务平台官网
  • 做展柜平时在哪里网站推广网站色彩学
  • 网站建站 seo企业网站建设方案模板
  • 国外有哪些做deal的网站四川建筑职业学校官网教务网
  • 无锡网站制作工作室临夏州建设厅官方网站