Mediator pattern 中介者模式 是干嘛的呢??什麽时候用到呢??
其实我们在工作中,写程序的时候,常常用到,没啥大惊小怪的。
它的主要的作用就是 操作两个对象。简单的说吧,中介的作用,就是介绍不同的对象的,使得不同的对象能相互形成关系。
职介的作用是撮合找工作的和企业形成雇佣关系,婚介是....就不一一介绍了。
下面我们来举个例子:
张三今天出差到上海,他要住喜来登酒店,住宿的话需要刷银行卡缴纳房费,那么这里的这个缴纳房费我们可以做个场景演示,用中介者模式来实现下。他们的关系如下图。
通过上图的实体关系,我们可以用JAVA来实现各个实体的关系。
房客.java
从上面对象我们可以发现房客有个银联卡噢。
房客银行卡.java
我们可以看出银行卡是有余额的,这里的卡的交易是要判断余额的。为什么这里的条件判断,交易金额是要加个负号呢。
这里我们可以理解下,如果交易金额是负的,是刷卡消费,那么就要判断余额是否足不足,那怎么办,只能再加个负号了。
如果是存入的,那就不管了。
酒店.java
这里的酒店的银行卡的信息其实已经集成在POS机里面了。
酒店银行卡.java
银联.java
银联提供交易接口。
酒店服务员.java
通过以上的6个对象,把上面的关系图里面的对象全部实现了。
在酒店服务员中,有个main函数,这里就相当于酒店服务员对缴费的处理吧。
下面我们看输出:
当然上面的交易是失败的。故意这么做的。
大家是否明白了呢,其实如果我们不用中介模式的话,那么这个操作也是可以实现的。只是两个对象的耦合就复杂了。在两个对象之间都会耦合对方的信息。
其实我们在平时写程序的过程中这种模式到处都在用,只是不知道叫什么模式罢了,设计模式就是个噱头。程序写的多了,自然用的正确的模式就多了,只是不知道这麽用原来叫做XXX设计模式........