给我一个婚介所,就能搞到一群姑娘! -- mediator(中介者)设计模式的精髓 .
来源:互联网 发布:linux ls显示文件名 编辑:程序博客网 时间:2024/04/27 13:26
引题
今天看了非常给力的《艺龙旅行网架构案例分享 》http://www.infoq.com/cn/presentations/jzf-elong-architecture-case-study
入题
在婚介所我们维护的是男女关系,那么在程序当中我们维护也是关系,画在纸上就是各种各样的“连线”,那么有哪几种连线呢?其实可以套用硬件总线的分类方法,当然首先你得连线的对象是谁,就像知道得找怎样的姑娘一样。
1) 数据: 要给什么?可以细为
数据的内容
2) 控制: 怎么给?可以细为
空间上怎么给 -- 调用关系依赖
3) 地址: 如何找到她?可以细分
破题
视频当中使用了 i Spring IoC
ii Canonical Data Format 、
iii SOA Enterprise Service BUS。按照上面的分类可以对号入座。
1) 数据
最好理解的是数据,对应视频举例ii。
2) 控制
控制的问题其实比较简单,mediator似乎是最想解决这个问题而诞生的。
对于空间上,比如函数func1(), func2(), func3()都分别放在x,y,z文件当中,模块A调用了func1() func2(), B调用了func2(), func3(),C调用了func3(),这里他们之间的调用连线是不是很多。
视频里面举那个流程改造的例子,我觉得非常的有启发性。里面的改造其实是从原始的状态机 分离成转发流程和处理流程 相互独立的过程。里面时间、空间的解耦都涉及了。
还是拿婚介所比喻,
空间上的分离:本来啊,你得漫无目的的在街上寻找姑娘,看到一个性感的背影,好了,空间上接近,迫不及待的想看她正面,然后心开始扑通扑通乱跳。有一句是什么来着,”望背影急刹千军万马“, 你那个兴奋啊,期待啊,可是。。。她一转身,”猛回头喝退各路诸侯“,原来是个如花啊!!!”我的妈呀“。 要是有婚介所就好了,这时候婚介所先帮你过滤了一批,你根本不需要接近这些姑娘鉴别美女。只需要看看婚介所给你的照片。。。(虽然国内PS流行)
时间上的分离:你还不甘心,继续找啊找,好不容易发现了美女,总不能让她这样就走了把,于是你鼓起勇气,厚着脸皮, 要了她的联系方式,心中无比暗爽。 而婚介所事先就帮你要到了一堆美女的联系方式,你只要去找中介即可。这时候对你来说,"找"和"要联系方式" 不是同时进行的。
3)地址
视频的举例i 和iii 我认为都可归类到这里,为什么呢
i举例是IoC, 解决对象依赖关系,这种依赖关系就是地址,
如A要import com.b.c.d 下的东西,要知道这个com.b.c.d在哪,如何解析这个,是不是地址的问题?
iii举例是SOA当中的Bus,解决对象之间通信的问题,既A要发给B,C,D这些对象,B要发给C, D, E, 但是呢,A, B又不想维护冗余的C,D的地址,这时候怎么办?是不是地址管理和路由的问题?其实学过网络,就知道路由器就是解耦这一过程而发明的。
相当于你去相亲,不需要事先知道每个姑娘住哪,她们也不需要知道你的,到了婚介所都会一一提供。
相当婚介所服务很到位,怎么去到姑娘家事先用google map 查了一份存好,你也不用自己在费脑筋、费时间去查了。每位姑娘来你家也是如此, 什么,来我家。。。。。
结题
但是mediator也有个明显的缺陷,就是作为mediator的中心节点 单点失效的问题,这个就不在本篇讨论之列了
一点愚见,敬请指教! 转载请注明作者和出处,谢谢!
- 给我一个婚介所,就能搞到一群姑娘! -- mediator(中介者)设计模式的精髓 .
- 我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)
- 我所理解的设计模式(C++实现)——中介者模式(Mediator Pattern)
- 设计模式--中介者模式(Mediator)
- 设计模式:中介者模式(Mediator)
- 设计模式:中介者模式(Mediator)
- 设计模式:中介者模式(Mediator)
- [设计模式]中介者模式(Mediator)
- 设计模式读书笔记:Mediator(中介者)
- Mediator(中介者)设计模式
- 中介者模式(Mediator)
- 中介者模式(Mediator)
- 中介者模式(Mediator)
- Mediator(中介者模式)
- 中介者模式(Mediator)
- 中介者模式(Mediator)
- Mediator(中介者)模式
- 中介者模式(Mediator)
- 成都IT公司
- doubango调试模式
- poj 3321
- Sql语句
- poj 2155
- 给我一个婚介所,就能搞到一群姑娘! -- mediator(中介者)设计模式的精髓 .
- 看张孝祥老师讲的交通灯有感-万能交通灯
- hdu color on ball
- 如何配置DSN
- hdu 3015
- 下载网页图片
- JAVA中关于线程通信安全问题
- poj 1990
- 内核模块编译之Makefile分析