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

科学城做网站公司乌海建设局网站

科学城做网站公司,乌海建设局网站,公司网站素材,大型网站服务器价格当涉及到电商场景时#xff0c;观察者模式可以用于处理多种情况#xff0c;比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 1.首先#xff0c;定义一个主题接口 OrderSubject /*** Description:主题#xff0c;用于管理观察… 当涉及到电商场景时观察者模式可以用于处理多种情况比如订单状态更新、库存变化、用户积分变化等。下面是一个简化的订单状态更新的观察者模式案例。 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 ListOrderObserver 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逻辑statusSHIPPED 14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.Warehouse - 订单状态发生改变处理Warehouse逻辑statusSHIPPED 14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.CustomerService - 订单状态发生改变处理CustomerService逻辑statusDELIVERED 14:49:40.082 [main] INFO com.ft.beanPostProcessor.custom1.Warehouse - 订单状态发生改变处理Warehouse逻辑statusDELIVERED
http://www.dnsts.com.cn/news/206163.html

相关文章:

  • 阳光家园广州网站网址房屋租赁网站建设管理
  • wordpress文章所有图片宁波网站seo哪家好
  • 做断桥铝窗户的网站佛山网站设计多少钱
  • 盛泽做网站WordPress标签加HTML
  • 品牌网站设计视频教程wordpress 插件 cdn
  • 怎么做网站截图小说网站开发流程
  • 局域网建设网站视频教程网站优化怎样提高网站用户体验
  • 网站开发注意汕头做网站公司
  • 最新移动网站趋势网站正在建设中换句话表达
  • 做卡盟网站教程淄博公益网站建设
  • 深圳集团网站建设WordPress句子主题
  • 一个网站可以绑定几个域名上海做网站高端
  • 河南省住房和城乡建设网站东莞大岭山邮政编码是多少
  • 拼多多怎么申请开店兰州网站的优化
  • 用node和vue做的网站四川省建设厅建造师官方网站
  • 青岛做网站的公司哪家好店铺位置怎么免费注册定位
  • 网站运营怎么做微信怎么开店铺小程序
  • 免费空间设立网站网站建设排期表
  • 网站建设与网页设计专业的注册会计师报名条件
  • 手机网站搭建多少钱wordpress精致建站
  • 鲜花团购网站建设天元建设集团有限公司信用代码
  • 网站建设是什么软件wordpress 直播
  • 淘宝客怎样建设网站广州城市建设档案网站
  • 建设银行顺德分行网站汽车网站建设背景
  • 什么语言做网站最好效果图在线
  • 建设网站大概多少钱深圳seo优化信
  • 河南省大型项目建设办公室网站产品网站开发
  • 吴江建网站微信公众号封面制作网站
  • 只有单页面的网站怎么做seo和一起做网店差不多的网站
  • wordpress vps建站安全员证查询网上查询