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

学校团委网站的建设百度关键词优化曝光行者seo

学校团委网站的建设,百度关键词优化曝光行者seo,网站建设组织,找建站公司文章目录 一、前言二、中介者模式1、定义2、未使用/使用中介者模式对比2.1、未使用中介者模式:2.2、使用中介者模式: 3、角色分析3.1、中介者(Mediator):3.2、同事(Colleague):3.3、…

文章目录

  • 一、前言
  • 二、中介者模式
    • 1、定义
    • 2、未使用/使用中介者模式对比
      • 2.1、未使用中介者模式:
      • 2.2、使用中介者模式:
    • 3、角色分析
      • 3.1、中介者(Mediator):
      • 3.2、同事(Colleague):
      • 3.3、客户(Client):
    • 4、中介者模式案例分析
      • 4.1、中介者
      • 4.2、同事
      • 4.3、客户
    • 5、代码示例
  • 三、总结

一、前言

本文将详细介绍设计模式中的中介者模式,其中包括,中介者模式的优点、缺点、各组成部分。

二、中介者模式

在这里插入图片描述

1、定义

中介者模式(Mediator Pattern)是一种设计模式,它定义了一个中介者类,该类将多个对象之间的通信抽象化,使得这些对象可以通过中介者进行通信,从而降低它们之间的直接耦合度。中介者模式适用于多个对象之间存在复杂的交互关系,直接耦合会导致代码变得复杂、难以维护和扩展。

2、未使用/使用中介者模式对比

2.1、未使用中介者模式:

在没有使用中介者模式的情况下,多个对象之间可能存在直接的相互依赖,导致代码的耦合度较高。当一个对象需要与其他多个对象进行交互时,它可能需要了解这些对象的详细信息,并直接调用它们的方法,这会增加代码的复杂性和难以维护性。

2.2、使用中介者模式:

通过引入中介者模式,可以将多个对象之间的交互抽象化,降低它们之间的直接耦合度。中介者类负责协调和管理各个对象之间的通信,各个对象只需要关注自身的职责,而不必关心其他对象的实现细节。这有助于简化代码,提高可维护性和可扩展性。

在未使用中介者模式的情况下,系统的各个子系统之间直接相互依赖,子系统之间的方法可以直接相互调用。这样的系统耦合性较大,不利于系统的维护和理解。

而使用中介者模式后,子系统之间的依赖关系被打破,各个子系统都只与中介者发生依赖,而不直接与其他子系统发生依赖。这样可以将系统中各个子系统的关系解耦,降低系统的复杂性,简化系统设计和理解。同时,中介者模式的引入也可以方便系统扩展和维护,因为对于子系统的修改和增加,只需要修改或增加中介者相应的处理方法即可,不需要对其他子系统进行修改。

3、角色分析

3.1、中介者(Mediator):

中介者类负责协调和管理各个对象之间的通信。它通常包含一个或多个 Colleague 对象的引用,并提供了相应的方法来处理或转发请求。中介者类通常没有具体的业务逻辑,而是根据需要调用相应的 Colleague 对象的方法。

3.2、同事(Colleague):

同事类是与中介者类进行交互的各个对象。每个同事类通常包含一些特定的业务逻辑,并且可以通过中介者来与其他同事类进行通信。

3.3、客户(Client):

客户类是使用中介者模式的对象。它通常只需要与中介者类进行交互,而不需要直接与各个同事类进行交互。

4、中介者模式案例分析

以电商平台的订单管理系统为例,订单管理系统涉及多个角色,如订单、购物车、用户等。这些角色之间存在复杂的交互关系,例如用户添加商品到购物车后可以提交订单,购物车可以修改订单状态等。

4.1、中介者

订单管理系统可以作为一个中介者,负责协调和管理各个角色之间的通信。例如,当用户提交订单时,订单管理系统可以调用购物车和库存管理系统的相关方法来处理请求。

4.2、同事

购物车、库存管理系统、支付系统等可以作为同事类,它们具有各自的业务逻辑,并可以通过订单管理系统进行通信。例如,购物车可以修改订单状态,库存管理系统可以检查商品库存等。

4.3、客户

用户可以作为客户类,他们只需要与订单管理系统进行交互,而不需要直接与其他同事类进行交互。用户可以通过订单管理系统来查看订单状态、取消订单等。

通过引入中介者模式,可以将各个角色之间的交互抽象化,降低它们之间的直接耦合度。这有助于简化代码,提高可维护性和可扩展性。

5、代码示例

// 中介者接口  
interface OrderMediator {  void addItemToCart(String itemId, int quantity);  void submitOrder(String userId);  
}  // 购物车同事类  
class ShoppingCart implements Colleague {  private Map<String, Integer> items = new HashMap<>();  private OrderMediator mediator;  public ShoppingCart(OrderMediator mediator) {  this.mediator = mediator;  }  @Override  public void handle(String message) {  if (message.startsWith("add")) {  String[] parts = message.split("\\s+");  addItemToCart(parts[1], 1);  } else if (message.equals("submit")) {  submitOrder(getUserId());  }  }  private void addItemToCart(String itemId, int quantity) {  items.put(itemId, items.getOrDefault(itemId, 0) + quantity);  mediator.addItemToCart(itemId, quantity);  }  private void submitOrder(String userId) {  // TODO: 提交订单的逻辑实现  System.out.println("Order submitted by user: " + userId);  }  private String getUserId() {  // TODO: 获取用户ID的逻辑实现  return "User123";  }  
}  // 库存管理系统同事类  
class InventorySystem implements Colleague {  private Map<String, Integer> inventory = new HashMap<>();  private OrderMediator mediator;  public InventorySystem(OrderMediator mediator) {  this.mediator = mediator;  }  @Override  public void handle(String message) {  if (message.startsWith("check")) {  String[] parts = message.split("\\s+");  checkInventory(parts[1]);  }  }  private void checkInventory(String itemId) {  int quantity = inventory.getOrDefault(itemId, 0);  System.out.println("Inventory quantity for item " + itemId + ": " + quantity);  }  
}  // 订单管理系统中介者类  
class OrderMediatorImpl implements OrderMediator {  private Map<String, Colleague> colleagues = new HashMap<>();  @Override  public void addItemToCart(String itemId, int quantity) {  Colleague colleague = colleagues.get(itemId);  if (colleague != null) {  colleague.handle("add " + quantity);  } else {  System.out.println("Item not found in the cart");  }  }  @Override  public void submitOrder(String userId) {  Colleague colleague = new ShoppingCart(this);  colleagues.put(userId, colleague);  colleague.handle("submit");  }  
}
public class Main {  public static void main(String[] args) {  OrderMediator orderMediator = new OrderMediatorImpl();  Colleague shoppingCart = new ShoppingCart(orderMediator);  Colleague inventorySystem = new InventorySystem(orderMediator);  orderMediator.addItemToCart("item1", 2); // 将item1加入购物车,数量为2  orderMediator.submitOrder("User123"); // 提交订单,用户ID为User123  inventorySystem.handle("check item1"); // 检查item1的库存数量  }
}

三、总结

中介者模式是一种重要的设计模式,它通过引入中介者类来降低多个对象之间的直接耦合度,从而提高代码的可维护性和可扩展性。在具体应用中,我们需要根据实际需求选择合适的中介者实现方式,并在合适的场景中应用该模式。

http://www.hkea.cn/news/653288/

相关文章:

  • 云空间免费空间北京网站优化校学费
  • 个人网站做导航网站项目推广平台有哪些
  • 威海住房建设局网站培训学校资质办理条件
  • 做趣味图形的网站免费线上培训平台
  • 女生做网站前端设计师成都网站seo
  • 濮阳建设银行官方网站搜索引擎优化的对比
  • 完全删除wordpressseo小白入门
  • 做网站常用到的css标签什么软件可以找客户资源
  • 有做销售产品的网站有哪些新闻头条今日新闻
  • 深圳自己做网站 服务器优化的近义词
  • 网站开发职业工资网站推广上首页
  • 宝安附近公司做网站建设多少钱深圳百度开户
  • 成都紧急通知seo网络营销招聘
  • 思坎普网站建设如何做营销推广
  • 太原网站优化公司有域名和服务器怎么建网站
  • 网站策划的前景seo 推广
  • wordpress导入网站文章怎么联系百度人工客服
  • 制冷机电工程东莞网站建设简阳seo排名优化培训
  • 北京网站建设 网站维护服装营销方式和手段
  • 唐山高端网站建设开发新客户的十大渠道
  • 小地方的旅游网站怎么建设seo教程有什么
  • 做网站教程宁波百度seo点击软件
  • asp.net个人网站北京专门做seo
  • 石家庄java开发做网站百度资源站长平台
  • 有哪些网站系统网络营销首先要进行
  • 网站建设硬件设置竞价广告是怎么推广的
  • 网站的平面设计图用ps做国外搜索引擎大全百鸣
  • 深圳专业企业网站建设前端培训
  • 南京平台公司seo搜索培训
  • 横沥网站建设武汉百度百科