Java设计模式的中介者模式Java认证考试

文章作者 100test 发表时间 2009:04:10 01:55:43
来源 100Test.Com百考试题网


  一、引子

  中介在现实生活中并不陌生,满大街的房屋中介、良莠不齐的出国中介……。它们的存在是因为它们能给我们的生活带来一些便利:租房、买房用不着各个小区里瞎转;出国留学也不用不知所措。

  中介者模式在程序设计中也起到了类似的作用。

  二、定义与结构

  GOF给中介者模式下的定义是:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。简单点来说,将原来两个直接引用或者依赖的对象拆开,在中间加入一个“中介”对象,使得两头的对象分别和“中介”对象引用或者依赖。

  当然并不是所有的对象都需要加入“中介”对象。如果对象之间的关系原本一目了然,中介对象的加入便是“画蛇添足”。

  来看下中介者模式的组成部分吧。

  1) 抽象中介者(Mediator)角色:抽象中介者角色定义统一的接口用于各同事角色之间的通信。

  2) 具体中介者(Concrete Mediator)角色:具体中介者角色通过协调各同事角色实现协作行为。为此它要知道并引用各个同事角色。

  3) 同事(Colleague)角色:每一个同事角色都知道对应的具体中介者角色,而且与其他的同事角色通信的时候,一定要通过中介者角色协作。

  来自《设计模式》一书的类图:

  由于中介者的行为与要使用的数据与具体业务紧密相关,抽象中介者角色提供一个能方便很多对象使用的接口是不太现实的。所以抽象中介者角色往往是不存在的,或者只是一个标示接口。如果有幸能够提炼出真正带有行为的抽象中介者角色,我想同事角色对具体中介者角色的选择也是策略的一种应用。

  “恰到好处,过犹不及”。适合自己系统的便是最好的。


相关文章


在Java中实现DOM文档和XML文件互相转换Java认证考试
Swing实现Windows任务窗口Java认证考试
GridBagLayout布局管理器—实现左右选择框Java认证考试
jsfl与Flash的完美结合Java认证考试
Java设计模式的中介者模式Java认证考试
Java程序员的迷失—论“虚拟机”Java认证考试
Java学习编程经验分享(二)Java认证考试
Java学习编程经验分享(一)Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛