`
keyboardsun
  • 浏览: 57867 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

设计模式 场景模拟 Mediator pattern 中介者模式

阅读更多

 Mediator pattern 中介者模式 是干嘛的呢??什麽时候用到呢??

其实我们在工作中,写程序的时候,常常用到,没啥大惊小怪的。

它的主要的作用就是 操作两个对象。简单的说吧,中介的作用,就是介绍不同的对象的,使得不同的对象能相互形成关系。

职介的作用是撮合找工作的和企业形成雇佣关系,婚介是....就不一一介绍了。

下面我们来举个例子:

张三今天出差到上海,他要住喜来登酒店,住宿的话需要刷银行卡缴纳房费,那么这里的这个缴纳房费我们可以做个场景演示,用中介者模式来实现下。他们的关系如下图。

 

通过上图的实体关系,我们可以用JAVA来实现各个实体的关系。

房客.java

从上面对象我们可以发现房客有个银联卡噢。

 

房客银行卡.java

 

我们可以看出银行卡是有余额的,这里的卡的交易是要判断余额的。为什么这里的条件判断,交易金额是要加个负号呢。

这里我们可以理解下,如果交易金额是负的,是刷卡消费,那么就要判断余额是否足不足,那怎么办,只能再加个负号了。

如果是存入的,那就不管了。

 

酒店.java

 

这里的酒店的银行卡的信息其实已经集成在POS机里面了。

 

酒店银行卡.java

 

银联.java

 

银联提供交易接口。

 

酒店服务员.java

 

 

通过以上的6个对象,把上面的关系图里面的对象全部实现了。

在酒店服务员中,有个main函数,这里就相当于酒店服务员对缴费的处理吧。

 

下面我们看输出:

 

当然上面的交易是失败的。故意这么做的。

 

大家是否明白了呢,其实如果我们不用中介模式的话,那么这个操作也是可以实现的。只是两个对象的耦合就复杂了。在两个对象之间都会耦合对方的信息。

 

其实我们在平时写程序的过程中这种模式到处都在用,只是不知道叫什么模式罢了,设计模式就是个噱头。程序写的多了,自然用的正确的模式就多了,只是不知道这麽用原来叫做XXX设计模式........

 

作者:keyboardsun 转载请标明出处

 

 

 

分享到:
评论

相关推荐

    设计模式之中介者模式(Mediator Pattern)

    **设计模式之中介者模式(Mediator Pattern)** 在软件工程中,设计模式是一种解决常见问题的经验总结,它提供了一种可复用的解决方案。中介者模式是行为设计模式之一,其主要目的是降低多个对象之间的复杂性,通过...

    中介者模式(Mediator Pattern)原理图

    中介者模式(Mediator Pattern)是一种行为型设计模式,用于减少对象之间的直接相互依赖,使得对象间的交互通过一个中介者对象来进行协调。在中介者模式中,对象之间不再直接相互调用,而是通过中介者对象来传递消息...

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

    **中介者模式(Mediator)详解** 在软件工程中,设计模式是一种被广泛采用...在实际开发中,尤其是在面对大量对象交互的复杂场景时,中介者模式是一个非常实用的设计模式,能够帮助我们构建出更易于理解和维护的代码。

    C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式

    标题和描述均提到了"C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式",这明确指向了一个特定的设计模式——中介者模式(Mediator Pattern),并且是在C#语言环境下的应用。下面将详细阐述这一设计...

    C++设计模式课件17_Mediator_中介者.pdf

    ### C++设计模式之Mediator(中介者)详解 #### 一、引言 在软件开发过程中,随着系统的复杂度逐渐增加,各个组件之间的交互变得越来越频繁,这不仅增加了系统的耦合度,还使得系统维护变得困难重重。为了解决这一...

    C#版 24种设计模式

    提供者模式(Provider Pattern) 外观模式(Facade Pattern) 享元模式(Flyweight Pattern) 原型模式(Prototype Pattern) 责任链模式(Chain of Responsibility Pattern) 中介者模式(Mediator Pattern) 装饰模式...

    mediator模式

    **中介者模式(Mediator Pattern)** 中介者模式是一种行为设计模式,它的主要目标是减少对象之间的耦合性,通过引入一个中介对象来协调多个对象之间的交互。在传统的多对象交互场景中,对象之间可能存在复杂的依赖...

    PHP设计模式之中介者模式(Mediator Pattern)入门与应用案例详解

    本文实例讲述了PHP设计模式之中介者模式(Mediator Pattern)。分享给大家供大家参考,具体如下: 咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介对象来封装一系列的对象交互,中介者使各对象不...

    用Java实现23种设计模式

    中介者模式(Mediator Pattern) 备忘录模式(Memento Pattern) 观察者模式(Observer Pattern) 状态模式(State Pattern) 空对象模式(Null Object Pattern) 策略模式(Strategy Pattern) 模板模式...

    设计模式 Mediator 中介者 c++

    中介者模式的完整代码。 程序默认使用vs开发。其他开发工具可能需要做少许调整。

    C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式 (Level 300)

    **中介者模式(Mediator Pattern)**是一种行为设计模式,其主要目的是降低多个对象之间的通信复杂性,将这些对象的直接交互转化为与一个中心对象——中介者的交互。在C#中,中介者模式的应用能够有效地减少类之间的...

    (行为型模式) Mediator 中介者模式

    C#面向对象设计模式 (行为型模式) Mediator 中介者模式 视频讲座下载

    C#设计模式_设计模式_C#_

    中介者模式(Mediator Pattern) 19. 职责链模式(Chain of Responsibility Pattern) 20. 备忘录模式(Memento Pattern) 21. 策略模式(Strategy Pattern) 22. 访问者模式(Visitor Pattern) 23. 状态模式(State Pattern)

    Java设计模式之中介者模式(Mediator Pattern)简介

    Java设计模式中的中介者模式(Mediator Pattern)是一种行为设计模式,它的主要目的是降低多个对象之间的耦合性,使得这些对象之间不必显式地互相引用,而是通过一个中介对象进行通信。这种模式使得对象间的交互更为...

    设计模式整理代码-pattern.zip

    - 中介者模式(Mediator):定义一个中介对象来简化原本复杂的对象交互。 - 观察者模式(Observer):定义对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 -...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列...中介者模式(Mediator) 备忘录模式(Memento) 观察者模式(Observer) 状态模式(State) 策略模式(Strategy) 模板方法模式(Template Method) 访问者模式(Visitor)

    Java设计模式之禅

    8. 中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互。 行为型模式关注的是对象之间的通信,包括: 1. 模板方法模式(Template Method Pattern):在一个方法中定义一个算法的骨架,而将一些...

    C++面向对象23种设计模式实现源码DesignPattern.zip

    4. **调停者模式(Mediator Pattern)**:调停者模式用于降低多个对象之间的耦合度,通过一个中介对象协调它们之间的通信。18.调停者模式Mediator展示了如何通过一个仲裁者类来处理对象间的交互,避免对象之间直接...

    设计模式专题之(十七)中介者模式---设计模式中介者模式示例代码(python--c++)

    **中介者模式**是软件设计模式中的一种结构型模式,它的主要目的是降低多个对象之间的复杂交互,通过引入一个中介对象来统一这些交互。在实际应用中,当对象间的交互变得日益复杂,导致类与类之间的关系过于紧密时,...

    设计模式PPT

     中介者模式(Mediator Pattern)  备忘录模式(Memento Pattern)  观察者模式(Observer Pattern)  状态模式(State Pattern)  策略模式(Strategy Pattern)  模板方法模式(Template Method ...

Global site tag (gtag.js) - Google Analytics