- 浏览: 29657 次
- 性别:
- 来自: 北京
设计模式之Mediator(中介者)
Mediator定义:
用一个中介对象来封装一系列关于对象交互行为.
为何使用Mediator?
各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性.
如何使用?
首先 有一个接口,用来定义成员对象之间的交互联系方式:
public interface Mediator { }
Meiator具体实现,真正实现交互操作的内容:
public class ConcreteMediator implements Mediator {
//假设当前有两个成员.
private ConcreteColleague1 colleague1 = new ConcreteColleague1();
private ConcreteColleague2 colleague2 = new ConcreteColleague2();
...
}
再看看另外一个参与者:成员,因为是交互行为,都需要双方提供一些共同接口,这种要求在Visitor Observer等模式中都是相同的.
public class Colleague {
private Mediator mediator;
public Mediator getMediator() {
return mediator;
}
public void setMediator( Mediator mediator ) {
this.mediator = mediator;
}
}
public class ConcreteColleague1 { }
public class ConcreteColleague2 { }
每个成员都必须知道Mediator,并且和 Mediator联系,而不是和其他成员联系.
至此,Mediator模式框架完成,可以发现Mediator模式规定不是很多,大体框架也比较简单,但实际使用起来就非常灵活.
Mediator模式在事件驱动类应用中比较多,例如界面设计GUI.;聊天,消息传递等,在聊天应用中,需要有一个MessageMediator,专门负责request/reponse之间任务的调节.
MVC是J2EE的一个基本模式,View Controller是一种Mediator,它是Jsp和服务器上应用程序间的Mediator.
Mediator定义:
用一个中介对象来封装一系列关于对象交互行为.
为何使用Mediator?
各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合松散,只需关心和 Mediator的关系,使多对多的关系变成了一对多的关系,可以降低系统的复杂性,提高可修改扩展性.
如何使用?
首先 有一个接口,用来定义成员对象之间的交互联系方式:
public interface Mediator { }
Meiator具体实现,真正实现交互操作的内容:
public class ConcreteMediator implements Mediator {
//假设当前有两个成员.
private ConcreteColleague1 colleague1 = new ConcreteColleague1();
private ConcreteColleague2 colleague2 = new ConcreteColleague2();
...
}
再看看另外一个参与者:成员,因为是交互行为,都需要双方提供一些共同接口,这种要求在Visitor Observer等模式中都是相同的.
public class Colleague {
private Mediator mediator;
public Mediator getMediator() {
return mediator;
}
public void setMediator( Mediator mediator ) {
this.mediator = mediator;
}
}
public class ConcreteColleague1 { }
public class ConcreteColleague2 { }
每个成员都必须知道Mediator,并且和 Mediator联系,而不是和其他成员联系.
至此,Mediator模式框架完成,可以发现Mediator模式规定不是很多,大体框架也比较简单,但实际使用起来就非常灵活.
Mediator模式在事件驱动类应用中比较多,例如界面设计GUI.;聊天,消息传递等,在聊天应用中,需要有一个MessageMediator,专门负责request/reponse之间任务的调节.
MVC是J2EE的一个基本模式,View Controller是一种Mediator,它是Jsp和服务器上应用程序间的Mediator.
发表评论
-
模式Visitor
2011-02-26 01:03 702设计模式之Visitor Visitor ... -
模式Template
2011-02-26 01:03 702设计模式之Template Template定义: 定义一个操 ... -
模式Strategy
2011-02-26 01:02 806设计模式之Strategy(策略) ... -
模式State
2011-02-26 01:02 655设计模式之State State的 ... -
模式Singleton
2011-02-26 01:02 729设计模式之Singleton(单态 ... -
模式Proxy
2011-02-26 01:01 660设计模式之Proxy(代理) 理解并使用设计模式,能够培养我们 ... -
模式Prototype
2011-02-26 01:01 704设计模式之Prototype(原型) 定义: 用原型实例指定创 ... -
模式Observer
2011-02-26 01:00 718设计模式之Observer Java深入到一定程度,就不可避免 ... -
模式Memento
2011-02-26 00:59 710设计模式之Memento(备忘 ... -
模式Interpreter
2011-02-26 00:58 809设计模式之Interpreter(解释器) Interpret ... -
模式Flyweight
2011-02-26 00:57 652设计模式之Flyweight(享元) Flyweight定义: ... -
模式Factory
2011-02-26 00:56 646设计模式之Factory 定义:提供创建对象的接口. 为何使用 ... -
模式Facade
2011-02-26 00:55 695设计模式之Facade(外观) Facade的定义: 为子系统 ... -
模式Decorator
2011-02-26 00:54 723设计模式之Decorator(油漆 ... -
模式Command
2011-02-26 00:52 616设计模式之Command Command模式是最让我疑惑的一个 ... -
模式Composite
2011-02-26 00:51 761设计模式之Composite(组合) Composite定义 ... -
模式Chain of Responsibility
2011-02-26 00:49 572设计模式之Chain of Respons ... -
模式Builder
2011-02-26 00:48 639设计模式之Builder Builder ... -
模式Bridge
2011-02-26 00:47 677设计模式之Bridge Bridge定义 : 将抽象和行为划 ... -
模式Adapter
2011-02-26 00:45 663设计模式之Adapter(适配 ...
相关推荐
中介者模式的完整代码。 程序默认使用vs开发。其他开发工具可能需要做少许调整。
**中介者模式(Mediator Pattern)** 中介者模式是一种行为设计模式,它的主要目标是减少对象之间的耦合性,通过引入一个中介对象来协调多个对象之间的交互。在传统的多对象交互场景中,对象之间可能存在复杂的依赖...
**Mediator模式** Mediator模式是一种行为设计模式,它定义了一个用来封装一系列对象相互作用的接口,使得这些对象不必显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。这种模式在软件开发...
中介者模式(Mediator)是设计模式的一种,主要用于降低多个对象之间的复杂交互。在JavaScript中,当多个对象之间存在复杂的依赖关系,导致类之间的耦合度增加时,中介者模式可以提供一个解决方案。通过引入一个中介...
**中介者模式(Mediator)详解** 在软件工程中,设计模式是一种被广泛采用的解决常见问题的经验总结,其中中介者模式是结构型设计模式的一种。它的主要目标是降低对象之间的耦合度,使得对象之间的关系更加清晰,...
**C++ Mediator模式详解** 在软件工程中,设计模式是一种在特定场景下解决常见问题的模板或蓝图,它提供了一种在不违反面向对象原则的前提下,提高代码可复用性和可维护性的方法。Mediator模式是其中的一种行为模式...
中介者模式(Mediator Pattern)是一种行为设计模式,它的主要目的是降低多个对象或类之间的通信复杂性。在软件工程中,当多个对象之间存在复杂的相互依赖关系时,维护这些关系可能会变得困难。中介者模式通过引入一...
**设计模式之中介者模式(Mediator Pattern)** 在软件工程中,设计模式是一种解决常见问题的经验总结,它提供了一种可复用的解决方案。中介者模式是行为设计模式之一,其主要目的是降低多个对象之间的复杂性,通过...
本文将对行为模式的原理和应用进行详细的介绍,包括职责链模式、命令模式、解释器模式、迭代器模式、mediator模式、备忘录模式、观察者模式、状态模式、策略模式、模板模式和访问者模式等。 Chain of ...
Mediator模式用一个中介对象来封装一系列的对象交互,使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### Command模式 Command模式将一个请求封装为一个对象,从而使你...
Mediator模式用一个中介对象来封装一系列的对象交互,使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### 3.7 Command模式 Command模式将请求封装为一个对象,从而使你...
C#面向对象设计模式 (行为型模式) Mediator 中介者模式 视频讲座下载
Mediator模式用一个中介对象来封装一系列的对象交互,使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### 3.7 Command模式 Command模式将一个请求封装为一个对象,从而使...
18.调停者模式Mediator展示了如何通过一个仲裁者类来处理对象间的交互,避免对象之间直接相互依赖。 5. **观察者模式(Observer Pattern)**:观察者模式是一种发布-订阅模式,当一个对象的状态发生改变时,所有...
Mediator模式用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### Command模式 Command模式将一个请求封装为一个对象,从而使...
Mediator模式用一个中介对象来封装一系列的对象交互,使得各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 #### Command模式 Command模式将一个请求封装为一个对象,从而使...