`
jsczxy2
  • 浏览: 1260959 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

学习设计模式之Mediator模式(中介者模式)

阅读更多

这里就直接引用一些某位同志的文章:

设计模式 写道
     通常 ,面向对象的软件开发要求尽可能细致地分配,从而使每 个对象都能够独立完成自己的任务。Observer模式通过尽可能缩小一个对象应对其他对象承担的责任范围来支持这种责任分配。而singleton模式 将责任集中于其他对象都可以访问和复用的某个特定对象中。与singleton模式类似的是,中介者模式也对责任进行了集中,不过这种模式只是对某个特定 对象集合的责任进行集中,而不是对整个系统的其他所有对象的责任进行集中。

如果对象群组中的交互错综复杂,而每个对象都需要了解本集合中的其他每个对象的情况,那么这个时候采用一个核心机构来负责控制它们的交互将非常有用,当这些相关对象之间的交互独立于对象的其他行为的时候,对责任进行集中也很有用。

 

Mediator模式的意图就是定义一个对象,该对象将对象集合之间的交互封装起来。利用该模式可以降低对象之间的耦合程序,避免对象之间的显式引用,还可以让对象间的交互独立变化。

在我们应用MVC设计模式的时候我们同时也可以应用中介者模模式。

MVC就是模型-视图-控制器这三个对象。而模式要与视图分开,所以我们可以把控制器当作中介者来接收视图的请求,并把处理业务逻辑交给模式

具体代码就是模型、视图对控制器的显式引用,而控制器引用这两个对象,这里就不写喽

 

小结:

    中介者模式可以降低对象之间的耦合程序,避免了相关对象之间的显式引。中介者模式广泛应用于GUI应用程序的开发过程,特别是游戏开发的时候。借助这个模式,可以不必直接管理组件之间的复杂的交互。

    在构造GUI的时候,Java会引导我们使用中介者模式,但它并不要求我们一定要把中介逻辑移出应用程序类。不过,这样做可以简化我们的代码。中介者类可专门用于处理对象间的交互,而应用程序类专门负责创建组件。

    引入中介者对象还有其他的优点。例如,我们可以使用中介者对象集中负责维护对象模型的关系完整性。每当需要封装对象间的交互方式的时候,我们都可以应用中介者模式。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics