小工具知识网

当前位置: 首页 > 行业知识 > 中介者模式

行业知识

中介者模式

2026-11-01 03:28:48 来源:互联网转载

定义:��介者模式(Mediator Pattern)又称为调节者模式或调停者模式。用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式的相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

()

适用场景:

1、系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。

()

2、想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。

优点:

1、降低了对象之间的耦合性,使得对象易于独立地被复用

2、集中控制交互

3、一对多关联转变为一对一的关联

缺点:

1、当同事类太多时,中介者的职责将很大,它会变得复杂而庞大,以至于系统难以维护。

2、中介者承担了较多的责任,一旦中介者出现了问题,整个系统就会受到影响。

生活场景中的应用:

1、微信群

2、短信平台

源码应用:

     1) mybatis源码:

mybatis中的SqlSessionFactory就扮演了中介者的角色,它负责创建和管理SqlSession对象。SqlSession是mybatis中用于与数据库交互的核心对象,而SqlSessionFactory则是创建SqlSession对象的工厂类。

当应用程序需要执行一个操作(如查询、添加或更新记录)时,它将向SqlSessionFactory请求一个SqlSession对象。SqlSessionFactory根据需要的配置信息(如数据库连接信息、事务管理器等)创建一个新的SqlSession对象,并将其返回给应用程序。

一旦应用程序获得了SqlSession对象,它就可以使用SqlSession对象来执行数据库操作。当执行完操作后,应用程序需要调用SqlSession的close()方法关闭资源,SqlSession将会被归还给SqlSessionFactory进行资源回收。

通过将SqlSession对象的创建和管理职责交由SqlSessionFactory统一管理,不仅可以保证SqlSession对象的有效性和一致性,同时也可以避免重复创建和销毁SqlSession对象的开销,提高系统性能和稳定性。

     2)JDK源码中的Timer类:

所有的task都放入了Timer类中维护的task队列中。所以Timer就是充当了一个中介者的角色,而task队列内的任务就是具体同事对象。

上一篇:QQ隐私保护秘籍,如何设置不接收图片和视频,守护你的隐私安全?

下一篇:Python筑基之旅-MySQL数据库(一)