查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧!

相似点

开始的时候,这三个模式在名字上的意思有相似的地方,在现实生活中,如房屋中介、买房人、卖房人,房屋中介当然是一个中介,因为它担任买房人和卖房人之间的相同;房屋中介也是一个代理,它在卖房人眼前是买房人的代理,在卖房人眼前时买房人的代理;最后房屋中介也是一个桥接,用于连接买房人和卖房人。那这字面意思相似的三者到底有什么不同的应用场所。

UML

代理模式 中介模式 桥接模式

代理模式

应用场所

1. 做过Android的都应该知道Android的进程间通信是Binder,Binder的客户端调用服务端都是通过调用服务端在客户端进程的代理进行的,由于客户端没法和服务端直接通信,因为他们在两个进程,所以这个代理其实就通过进程间通信和服务端交互,但是看起来就好像客户端直接和服务端通信一样。

每日一道理
虽然你现在还只是一株稚嫩的幼苗。然而只要坚韧不拔,终会成为参天大树;虽然你现在只是涓涓细流,然而只要锲而不舍,终会拥抱大海;虽然你现在只是一只雏鹰,然而只要心存高远,跌几个跟头之后,终会占有蓝天。

2. 引用计数,C++利用引用计数来管理对象内存的回收,我们在应用这个对象时,都是通过引用计数来操作的,因为我们不知道这个对象现实的地址,这个引用计数就是该对象的代理;所以,上面的UML图不一定是精确的,代理和被代理对象不一定继承于一个基类,它们之间可以没有任何关系;

特点

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

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

中介模式

应用场所

1. Android的Binder的总服务ServiceManager就是一个中介者,它们担任所有的客户端和所有服务之间的通信;

特点

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

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

桥接模式

应用场所
当一个类有很多属性时,我们可以通过继承的方法来继承这些属性,但是如果属性不稳准时,继承会形成大量的继承类,所以这个时候应用组合或者聚合更好一些;
特点
1. 一对多的关系,一个类可以有很多其他属性;
2. 桥接夸大不是对象之间的通信,而是拥有某些属性;

区分

1. 我们可以看出,中介者模式和代理模式比较相似,他俩夸大的是通信,桥接模式夸大的时候拥有属性;
2. 中介者模式是多对多通信,代理是一对一通信,桥接是一对多;
3. 代理是通信只能从一方到另外一方,中介者是双向都可以通信;

文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/17/3084535.html

代理通信设计模式 - 代理模式、桥接模式、中介者模式相关推荐

  1. Java设计模式之行为型:中介者模式

     前言: 在我们的生活中处处充斥着"中介者",比如你租房.买房.找工作.旅游等等可能都需要那些中介者的帮助,地球上国与国之间的关系异常复杂,会因为各种各样的利益关系来结成盟友或者敌 ...

  2. 设计模式(十四)中介者模式

    相关文章 设计模式(一)设计六大原则 设计模式(二)单例模式的七种写法 设计模式(三)建造者模式 设计模式(四)简单工厂模式 设计模式(五)观察者模式 设计模式(六)代理模式 设计模式(七)装饰模式 ...

  3. 设计模式(十八)—— 中介者模式(定义、案例分析、特点、缺点)

    文章目录 前言 正文 一.定义 二.情景假设 三.情景分析 四. 模式分析 (1) 模式特点 (2) 模式缺点 五.使用情景 六.拓展与延申 总结 前言 文章内容主要参考了刘伟主编的<设计模式( ...

  4. 23种设计模式(8):中介者模式

    一:中介模式的定义         --->用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互.         ---& ...

  5. final类是否可以被代理_设计模式——代理模式

    代理模式 什么是代理模式 通过代理控制对象的访问,可以详细访问某个对象的方法,在这个方法调用处理,或调用后处理.既(AOP微实现) ,AOP核心技术面向切面编程. 代理模式应用场景 SpringAOP ...

  6. 设计模式(10):行为型-中介者模式(Mediator)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  7. 设计模式笔记十八:中介者模式

    原文:http://www.runoob.com/design-pattern/ 少许个人理解,如有错误请指出.欢迎一起讨论. 中介者模式(Mediator Pattern) 是用来降低多个对象和类之 ...

  8. 『设计模式』电话接线员与中介者模式

    23种设计模式+额外常用设计模式汇总 (持续更新) 引入 在面向对象系统的设计和开发过程中,对象之间的交互和通信是最为常见的情况,因为对象间的交互本身就是一种通信. 在系统比较小的时候,可能对象间的通 ...

  9. Android设计模式(十六)-中介者模式

    原文地址 http://blog.csdn.net/qq_25806863/article/details/69396448 中介者模式又叫调解者模式或调停者模式,是行为型设计模式之一. 生活中的中介 ...

  10. 【大话设计模式】模式十:中介者模式

    [引入] 国与国之间的关系,类似于对象与对象之间的关系,这就要求对象之间需要知道其他所有对象.但是对象之间大量的链接使得一个对象不可能在没有其他对象支持下工作,系统表现为一个不可分割的整体,降低其可复 ...

最新文章

  1. 【iOS】UIButton 图标在上文字在下
  2. 全世界最详细的图形化VMware中linux环境下oracle安装(三)【weber出品必属精品】...
  3. 打开u盘时提示是否要将其格式化的提示
  4. UML-类图-需要写关联名称吗?
  5. SAP Leonardo机器学习如何获取模型存储的实际地址
  6. BZOJ 2588: Spoj 10628. Count on a tree 树上跑主席树
  7. 2021河南固高高考成绩查询,河南信阳最好的4所高中,前三所学霸如云,看看有没有你的母校?...
  8. 【sql那些事】时间处理的一揽子事
  9. brew 无法安装iterm2_Mac安装sshpass 替代spawn自动登录脚本(解决rz sz问题)
  10. 工作中 linux 常用命令:vi、cp、mv、rm、kill、curl、tail
  11. Springboot+JasperReport报表打印
  12. BZOJ1047B Cover Points
  13. 一款GaN HEMT内匹配功率放大器设计过程详解
  14. pdf加水印怎么加?五个步骤非常简单
  15. 徐有高:为你详细解读我国40省市新能源汽车补贴政策(转载)
  16. 浮点数I-EEE规范
  17. 条信息流oCPC调研报告
  18. java 将doc格式的文档转化为pdf格式(实现Word文件预览)
  19. 离散数学:格与布尔代数
  20. 如何让图片变成全景图,vr全景图怎么拍摄和制作

热门文章

  1. 如何用循环语句输出一个三角形
  2. mysql计算指定的时间TPS
  3. WCF客户端动态设置WCF服务器主机的地址的方法参考,可以连接多个相同WCF主机的方法...
  4. Ubuntu下解决文件名mp3标签和文本文件内容的乱码问题
  5. [JavaScript]面向对象编程
  6. Jscript中文变量乱码,又一次中招 _
  7. spring处理循环依赖时序图_spring--解决循环依赖
  8. Unity 序列化的问题
  9. Nginx源码分析 - 基础数据结构篇 - 数组结构 ngx_array.c(03)
  10. iphone已停用怎么解锁_iPhone X已停用 连接iTunes 怎么办