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

网站运营编辑seo外包上海

网站运营编辑,seo外包上海,做网站赚什么钱,提供网站制作公司电话当涉及到电商场景时,观察者模式可以用于处理多种情况,比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 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.laogonggong.com/news/14772.html

相关文章:

  • 怎么建立自己公司的网站seo排名技术教程
  • 分类网站建设方案百度一下点击搜索
  • 为什么要域名备案长沙seo推广优化
  • 做算法题网站google浏览器官网入口
  • 企业官方网站怎么查企业培训内容有哪些
  • 后端开发和前端开发哪个工资高搜索引擎优化员简历
  • 公司网站建设设计公司哪家好seo服务是什么
  • 空间做子网站设计个人网站
  • 定制网站系统开发百度推广获客方法
  • 企业高端网站建设美工铁力seo
  • vue做的网站影响收录么贵阳网站建设推广
  • 网站生成app 免费工具做seo如何赚钱
  • 网站开发服务合同范本北京优化网站推广
  • 什么网址都能打开的浏览器成都网站优化排名推广
  • wordpress定位插件杭州seo托管公司推荐
  • 墙绘做网站靠谱不站长工具排行榜
  • 免费网站模版 优帮云百度seo快速排名优化软件
  • 用电脑做服务器搭建php网站韶山百度seo
  • 装修公司那家好seo外包 杭州
  • 建什么网站可以赚钱优化20条措施
  • 优才网站建设百度收录的网页数量
  • 临汾市建设局网站百度快快速排名
  • wordpress 菜单结构没有css类邵阳seo优化
  • wid2008vps创建网站南阳本地网络推广优化公司
  • 网站当前日期代码如何制定会员营销方案
  • 网站建设策划案如何做好平台推广
  • 四川省的建设厅注册中心网站首页手机百度网页版登录入口
  • 肃宁网站建设公司友情链接交换平台免费
  • 手机网站字体自适应软文自动发布软件
  • 手机网站建设网站广州网络推广定制