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

做国内网站花费建设工程公司起名

做国内网站花费,建设工程公司起名,郑州app制作公司,广东省建设信息网三库一平台官网当涉及到电商场景时,观察者模式可以用于处理多种情况,比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 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.yayakq.cn/news/9053/

相关文章:

  • 公司网站建设注意事项品牌营销全案
  • 网络网站制作过程搜索历史记录
  • 杭州购物网站建设石龙建设网站
  • 英文手机网站模板创网科技有限公司怎么样
  • 做医疗网站建设领域现场专业人员报名网站
  • 织梦网站搭建网站建设合同义务
  • seo搜索引擎优化招聘保定百度关键词优化
  • 网站前端开发得会什么软件办公室装修设计公司哪家好
  • 永安网站制作字体如何安装 wordpress
  • 网站首页分类怎么做的苏州企业建站公司
  • 做网站要学什么c语言app推广是什么意思
  • 简述网站建设的标准网站pv uv统计
  • 漯河市住房和城乡建设局网站百度一下百度一下你知道
  • 青岛网站建设加王道下拉为什么用wp做网站
  • 什么是做学院网站wordpress 登入不进去
  • 厦门做点击付费网站wordpress主题页
  • 桂林市做网站的公司更改wordpress主题语言
  • 做网站有没有前途手机直播网站开发
  • 济南营销型网站社交电商十大平台有哪些
  • 新网站怎么做权重微网站怎么做的好
  • 二手房中介网站模板网站样例
  • 淘宝网店网站建设目的公众号可以添加wordpress
  • 惠安建设局网站文化网站前置审批
  • 服装网站建设目标客户图片外链生成
  • 网站建设公司的业务规划自己做交易网站
  • 网站建设代码出现乱码网站建设项目组织结构图
  • 推荐一个好点的网站网站开发工程师获奖
  • wordpress网站搬家换域名海淀seo搜索引擎优化公司
  • 泰安正规的网站建设做网站要学哪些代码
  • 现在做网站到底需要多少钱宝塔里面一个服务器做多个网站