首页 > 模式算法 > 代理模式、桥接模式、中介者模式区别和联系
2012
05-08

代理模式、桥接模式、中介者模式区别和联系

联系

   

在现实生活中,如房屋中介、买房人、卖房人,房屋中介是一个中介,因为它担任买房人和卖房人之间的相同;

房屋中介也是一个代理,它在卖房人眼前是买房人的代理,在卖房人眼前是买房人的代理;

最后房屋中介也是一个桥接,用于连接买房人和卖房人。那这字面意思相似的三者到底有什么不同的应用场景。


代理模式

    场景

    1. 最常见的就是数据库中间件,他们代理了数据库的访问,访问一个集群跟访问一个单机数据库一样。

    2. 你想访问 Facebook 或者 Twitter ,如何绕过 GFW?找个代理网站

    3. php适合代理模式的__call()方法,当对象调用不存在 或者 受权限限制的方法时,__call()会被自动调用

    4. 生活中有很多实际的案例,比如说“代购”


    特点

    1. 一对一,这个代理只能代表一个对象;

    2. 只能代理一方,也就是 PB 是B的代理,A能够通过PB访问B,但是B不能通过PB访问A;


中介模式

    场景

    1、中国加入 WTO 之前是各个国家相互贸易,结构复杂,现在是各个国家通过 WTO 来互相贸易。

    2、机场调度系统。

    3、MVC 框架,其中C(控制器)就是 M(模型)和 V(视图)的中介者。

    

    特点

    1. 多对多,这些被管理的对象之间都可以通信,它们的业务关系应该是交织在一起的;

    2. A能够通过中介访问B,B也能够通过中介访问A;

    

桥接模式

    

    场景

    1、现需要提供大中小3种型号的画笔,能够绘制5种不同颜色,如果使用蜡笔,我们需要准备3*5=15支蜡笔,也就是说必须准备15个具体的蜡笔类。而如果使用毛笔的话,只需要3种型号的毛笔,外加5个颜料盒,用3+5=8个类就可以实现15支蜡笔的功能。

    2、小米不同型号手机使用不同的底层语音输出软件

    3、不同电脑可以连接不同的手机

    4、发送多种类型的消息(qq,email),每种消息都有不同的消息等级(普通消息,紧急消息等)

    

    特点

    

    1. 一对多的关系,一个类可以有很多其他属性;
    2. 桥接夸大不是对象之间的通信,而是拥有某些属性;


总结

    

1. 我们可以看出,中介者模式和代理模式比较相似,他俩夸大的是通信,桥接模式夸大的时候拥有属性;

    

2. 中介者模式是多对多通信,代理是一对一通信,桥接是一对多;

    

3. 代理是通信只能从一方到另外一方,中介者是双向都可以通信;


本文》有 0 条评论

留下一个回复