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

html网页设计颜色代码北京seo推广服务

html网页设计颜色代码,北京seo推广服务,深圳定制网站制作费用,电信宽带办理文章目录 引言中介者模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用聊天室示例代码地址 引言 想象一下一座忙碌的机场,各种飞机需要起飞、降落,而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统,这将是一…

文章目录

  • 引言
  • 中介者模式简介
    • 定义与用途
    • 实现方式
  • 使用场景
  • 优势与劣势
  • 在Spring框架中的应用
  • 聊天室示例
  • 代码地址

引言

想象一下一座忙碌的机场,各种飞机需要起飞、降落,而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统,这将是一场混乱。空中交通控制塔(ATC)作为中介者,协调各个飞机的活动,确保一切有序进行。在软件开发中,我们也经常遇到多个对象需要相互通信和协调的情况,中介者模式为这种复杂的通信和控制提供了一种简单明了的解决方案。

中介者模式简介

定义与用途

中介者模式(Mediator Pattern)是一种行为型设计模式,它通过引入一个第三方对象(中介者)来管理一组对象之间的复杂交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,并且可以独立地改变它们之间的交互。

实现方式

实现中介者模式通常涉及以下几个关键组件:

  • 中介者接口(Mediator):定义了同事对象到中介者对象的接口,用于各同事对象通知中介者。
  • 具体中介者(Concrete Mediator):实现中介者接口,并协调各同事对象之间的交互。
  • 同事类(Colleague):所有同事类的接口。每个同事只知道自己的行为,而不了解其他同事的情况,但它们知道中介者。

使用场景

中介者模式适用于以下场景:

  • 当一组对象之间的通信方式复杂混乱时。
  • 当需要一个对象来管理这些交互,并使其互不依赖时。
  • 当你想定制一个分布在多个类中的行为,而又不想生成太多的子类时。

例如:

  • 聊天室:聊天室作为中介者,协调多个用户(同事)之间的消息传递。
  • GUI中的窗口系统:窗口或对话框作为中介者,协调各种GUI组件(按钮、文本框、列表等)之间的交互。
  • 航班调度系统:调度中心作为中介者,管理多个航班的起降和空中路径。

优势与劣势

  • 优势
    减少了类之间的依赖,降低了耦合度。
    将一对多的依赖转化为一对一的依赖,提高了系统的可维护性。
    中心化的控制交互逻辑,使其易于理解和修改。
  • 劣势
    中介者本身可能变得过于复杂,集中了过多的逻辑。

在Spring框架中的应用

在Spring框架中,虽然不常直接提到中介者模式,但是许多Spring的核心概念和组件实际上体现了中介者模式的精神。中介者模式的核心思想是通过一个中介对象来封装一系列对象之间的交互,使对象之间不需要显式地相互引用,从而使其耦合松散,而Spring框架恰恰提倡控制反转和依赖注入来实现松耦合。

以下是Spring框架下体现中介者模式思想的几个方面:

1. Spring容器作为中介者
在Spring中,容器(如ApplicationContext)充当中介者的角色,管理应用对象(Bean)的整个生命周期。容器负责创建Bean、注入依赖、配置Bean以及管理它们的生命周期。Bean之间不需要知道对方的存在,它们只通过配置文件或注解声明依赖,由Spring容器来负责具体的依赖注入工作。2. Spring MVC中的DispatcherServlet
在Spring MVC框架中,DispatcherServlet充当中介者的角色,负责协调各种Controller、Service、和View之间的交互。它接收请求,委托给适当的处理器,然后再将模型数据传递给视图进行渲染。在这个过程中,DispatcherServlet确保各个组件相互之间的解耦和协调。3. 事件发布和监听
Spring的事件发布-监听机制也是中介者模式的一个体现。在这种机制中,应用可以发布各种事件,而监听器可以监听这些事件。Spring的ApplicationEventPublisher充当中介者,管理事件的发布和监听器的通知。这种方式实现了事件发布者和监听者之间的松耦合。4. JdbcTemplate和TransactionTemplate
Spring提供了一系列的模板,比如JdbcTemplate和TransactionTemplate,它们封装了对JDBC操作和事务管理的常见模式。这些模板类充当中介者的角色,管理数据库连接、语句的执行以及事务的边界,用户只需要提供具体的SQL和代码逻辑。

尽管这些组件和机制不是传统意义上的中介者模式,但它们体现了中介者模式背后的核心原则:封装对象之间的交互,提供一个统一的接口来协调各个组件或服务的行为。通过这种方式,Spring框架显著降低了组件之间的耦合度,并提高了整体的灵活性和可维护性。

聊天室示例

在这里插入图片描述
步骤 1:创建中介者类

import java.util.Date;public class ChatRoom {public static void showMessage(User user, String message){System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);}
}

ChatRoom 充当中介者角色,提供一个静态方法 showMessage 来展示用户的消息。这个方法打印了消息的时间、发送者和内容。

步骤 2:创建用户类

public class User {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public User(String name){this.name  = name;}public void sendMessage(String message){ChatRoom.showMessage(this, message);}
}

User 类代表聊天室的用户。每个用户有一个名字,并且可以通过 sendMessage 方法来发送消息。当用户发送消息时,它实际上是调用了中介者 ChatRoom 的 showMessage 方法。

步骤 3:展示用户间的通信

public class MediatorPatternDemo {public static void main(String[] args) {User robert = new User("Robert");User john = new User("John");robert.sendMessage("Hi! John!");john.sendMessage("Hello! Robert!");}
}

在这里插入图片描述

在这个演示类中,我们创建了两个用户 Robert 和 John。然后我们让这两个用户相互发送消息。每当用户发送消息时,实际上是通过 ChatRoom(作为中介者)来显示消息的。

这个示例演示了中介者模式如何在软件设计中用于简化多个对象之间的通信。通过将对象之间的通信封装到一个中介者对象中,可以降低对象之间的直接交互,减少系统的复杂性,提高可扩展性和可维护性。

代码地址

23种设计模式相关代码后续会逐步提交到github上,方便学习,欢迎指点:
代码地址
https://github.com/RuofeiSun/lf-23Pattern

http://www.mmbaike.com/news/65382.html

相关文章:

  • 软件工程师证书有哪些网页seo是什么意思
  • 阿里巴巴的网站架构软文推广有哪些
  • php网页设计代码重庆seo技术教程
  • 进度跟踪网站开发外贸平台有哪些?
  • 做网站平台需要什么条件赛事资讯赛马资料
  • 做网站导航栏素材图天津百度推广公司电话
  • 做网站 被谷歌收录百度客户端
  • h5网站怎么做api对接线上销售平台如何推广
  • 服装网站建设策划书的基本结构新闻发布会稿件
  • 百度云可以做网站吗百度的人工客服
  • 云梦做网站seo查询网站是什么
  • 企业的网站开发费用如何入账今日新闻头条内容
  • 延安网站制作长沙seo计费管理
  • 提高审美网站税收大数据
  • 个人工商注册查询网站东莞seo搜索
  • 地方门户信息网站建设方案平台运营
  • 网站怎么推广出去比较好百度搜索推广是什么
  • 如今做那个网站能致富武汉关键词seo
  • 做网站怎么还用身份证深圳推广
  • 网站修改联系方式武汉seo优化排名公司
  • 上海市城乡和住房建设厅网站搜外网 seo教程
  • 消防微型建设标准的网站是多少免费学生html网页制作成品
  • 网站开发兼容ie培训学校资质办理条件
  • 网站建设百科什么是信息流广告
  • 网站怎么做网站收录网站的优化从哪里进行
  • 网站怎么挖掘关键词百度自己的宣传广告
  • 贵阳建设银行网站白度
  • 公司网站做一年多少钱网站关键词优化案例
  • 交互式多媒体网站开发常州网站推广公司
  • 网站建设中404什么意思外贸网络营销推广