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

网站运营编辑网页制作流程

网站运营编辑,网页制作流程,工作感悟及心得,php网站如何绑定一级域名到子目录当涉及到电商场景时,观察者模式可以用于处理多种情况,比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 1.首先,定义一个主题接口 OrderSubject /*** Description:主题,用于管理观察…

当涉及到电商场景时,观察者模式可以用于处理多种情况,比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。

1.首先,定义一个主题接口 OrderSubject

/*** Description:主题,用于管理观察者** @author: wubei* @date: 2023/12/6 14:09*/
public interface OrderSubject {void addObserver(OrderObserver observer);void removeObserver(OrderObserver observer);void notifyObservers(OrderStatus status);}

2.然后,定义一个观察者接口 OrderObserver

/*** Description:** @author: wubei* @date: 2023/12/6 14:09*/
public interface  OrderObserver {void update(OrderStatus status);}

3.接下来,定义订单状态枚举 OrderStatus

/*** Description:** @author: wubei* @date: 2023/12/6 14:10*/
public enum OrderStatus {CREATED, SHIPPED, DELIVERED, CANCELLED}

4.然后,实现具体的订单主题类 Order

/*** Description:* Order 类充当主题(Subject),而 CustomerService 和 Warehouse 类充当观察者(Observer)。* 当订单状态发生变化时,所有注册的观察者都会收到通知,并执行相应的更新逻辑。* 这个模式可以轻松扩展以处理更多的观察者和主题。** @author: wubei* @date: 2023/12/6 14:10*/
public class Order implements OrderSubject {private List<OrderObserver> observers = new ArrayList<>();private OrderStatus status;public Order(OrderStatus status) {this.status = status;}public OrderStatus getStatus() {return status;}public void setStatus(OrderStatus status) {this.status = status;notifyObservers(status);}@Overridepublic void addObserver(OrderObserver observer) {observers.add(observer);}@Overridepublic void removeObserver(OrderObserver observer) {observers.remove(observer);}@Overridepublic void notifyObservers(OrderStatus status) {for (OrderObserver observer : observers) {observer.update(status);}}
}

5.接下来,创建两个具体的观察者类,分别处理订单状态的更新

/*** Description:** @author: wubei* @date: 2023/12/6 14:10*/
@Slf4j
public class CustomerService implements OrderObserver {@Overridepublic void update(OrderStatus status) {log.info("订单状态发生改变处理CustomerService逻辑,status={},", status);// 具体的处理逻辑,例如发送邮件通知客户}
}
/*** Description:** @author: wubei* @date: 2023/12/6 14:10*/
@Slf4j
public class Warehouse implements OrderObserver {@Overridepublic void update(OrderStatus status) {log.info("订单状态发生改变处理Warehouse逻辑,status={},", status);// 具体的处理逻辑,例如更新库存}}

6.最后,在主应用程序中使用这些类

public class Main {public static void main(String[] args) {Order order = new Order(OrderStatus.CREATED);// 创建观察者OrderObserver customerService = new CustomerService();OrderObserver warehouse = new Warehouse();// 注册观察者order.addObserver(customerService);order.addObserver(warehouse);// 模拟订单状态变化order.setStatus(OrderStatus.SHIPPED);order.setStatus(OrderStatus.DELIVERED);}
}

执行结果:

14:49:40.081 [main] INFO com.ft.beanPostProcessor.custom1.CustomerService - 订单状态发生改变处理CustomerService逻辑,status=SHIPPED,
14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.Warehouse - 订单状态发生改变处理Warehouse逻辑,status=SHIPPED,
14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.CustomerService - 订单状态发生改变处理CustomerService逻辑,status=DELIVERED,
14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.Warehouse - 订单状态发生改变处理Warehouse逻辑,status=DELIVERED,
http://www.hrbkazy.com/news/29906.html

相关文章:

  • wordpress百度分享按钮美化seo的作用主要有
  • 小程序制作第三方平台百度关键词快速优化
  • wordpress做在线编辑图片seo权重查询
  • 公司网站建设及优化计划书中国培训网
  • 静海网站建设公司网站优化就是搜索引擎优化
  • 金桥网站建设互联网营销具体做什么
  • 个人接单做网站挣钱不seo排名优化培训怎样
  • 山东建设科技产品推广网站品牌线上推广方式
  • 网站源码大全 最新有了域名如何建立网站
  • 电视剧在线观看免费影视网站查看网站流量的工具
  • 内部网站建设要求培训机构连锁加盟
  • 网站建设方案模板seo课程排行榜
  • 河北涿州住房和城乡建设厅网站新seo排名点击软件
  • 最简单做网站上海seo排名
  • 做愛网站苏州网站外包
  • 个人网站建设制作网站域名查询系统
  • 本网站正在建设升级中百度竞价有点击无转化
  • 怎样建设一个能上传数据的网站郑州seo外包顾问热狗
  • 毕业论文代做网站可信吗seo营销方案
  • html5网站开发技术谷歌 翻墙入口
  • 南沙建设局网站推广什么软件可以长期赚钱
  • 企业网站软件开发bing搜索引擎
  • 怎么用wix做网站安卓优化大师下载安装到手机
  • 响应式网站建设推荐乐云seo百度开户代理
  • 网站建设系统计公司企业管理培训视频免费
  • 贵阳网络网站建设网上推广
  • 余姚做网站设计的公司查询网域名查询
  • .jsp网站开发技术yandex搜索入口
  • 沈阳关键词优化电话seo百科大全
  • 网站建设供需百度推广是什么工作