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

表白二维码制作网站备案域名交易平台

表白二维码制作网站,备案域名交易平台,有交做拼多多网站的吗,wordpress插件 收费下载资源当涉及到电商场景时,观察者模式可以用于处理多种情况,比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 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.tj-hxxt.cn/news/86079.html

相关文章:

  • web网站开发心得泰安百度推广公司
  • 网站怎么做301重定向百度网盘下载速度
  • 广汉移动网站建设线上营销
  • 阿里云服务器挂游戏seo查询爱站网
  • 优化公司排名常德网站seo
  • 湛江做网站长春网站建设方案推广
  • 信息发布的网站怎么做知名的网络推广
  • 在淘宝做网站可以改域名吗网络营销文案策划
  • 武汉做网站制作网络营销有哪些主要功能
  • 鲜花网站建设解决方案弹窗广告最多的网站
  • 只做健康产品的网站免费访问国外网站的app
  • 小游戏网站开发者seo免费培训教程
  • 阿里云网站建设好用吗深圳网络推广最新招聘
  • 做爰直播网站上海最新事件
  • 网站做反向代理对百度收录有影响吗杭州seo网站排名
  • 网站开发的话 dw里面选择啥外链网盘下载
  • wordpress添加文章时可以上传视频武汉seo关键词排名优化
  • 开发公司质量保证体系情况说明比优化更好的词是
  • 专业集团门户网站建设费用中国搜索引擎大全
  • 页面设计属于作品登记的哪个类别seo外链工具软件
  • 网络科技公司的经营范围怎么写seo搜狗
  • 如何做医药类网站百度搜索引擎广告
  • 企业网站怎么查企业推广策略
  • java cms做网站吉林网站推广公司
  • 婚恋网站 备案条件软文什么意思范例
  • 网站企业建设国际形势最新消息
  • 本地配置wordpress北京做的好的seo公司
  • 泰州网站开发公司如何查询百度收录情况
  • 给政府做网站的申请广州网站建设推荐
  • wap网站html模板百度平台联系方式