设计模式:适配器,桥接,代理模式的区别

适配器模式:

将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

比如:手机的usb数据线可以被看做适配器,不同的手机通过不同的usb数据线连接到电脑相同的usb接口上。还有,栈和队列被称为容器适配器,他们本身都是基于线性表来实现的,但是对外提供了特定的操作接口。

参考:https://www.cnblogs.com/-crazysnail/p/3949480.html

设计模式:适配器,桥接,代理模式的区别_第1张图片

适配器模式举例:usb接口

设计模式:适配器,桥接,代理模式的区别_第2张图片

桥接模式:

主要目的是将一个对象的主要因素抽象出来,不是通过类继承的方式来满足这个因素的变化,而是通过对象组合的方式来依赖因素的抽象。这样当依赖的因素的具体实现发生变化后,而我们具体的引用却不用发生改变,因为我们的对象是依赖于抽象的,而不是具体的实现。应对多维度的变化(图形:矩形 圆形 三角形等   颜色:白色 黄色 黑色 组合在一起,有两个变化因素)

参考:https://www.cnblogs.com/hegezhou_hot/archive/2010/12/10/1902185.html

https://blog.csdn.net/hguisu/article/details/7529194

使用场景:

(1)当一个对象有多个变化因素的时候,通过抽象这些变化因素,将依赖具体实现,修改为依赖抽象。

(2)当某个变化对象在多个对象中共享时,我们可以抽象出这个变化因素,然后实现这些不同的变化因素。

(3)当我们期望一个对象的多个变化因素可以动态的变化,而且不影响客户的程序的使用时。

代理模式:

之前有讲过:https://mp.csdn.net/postedit/82844237

设计模式:适配器,桥接,代理模式的区别_第3张图片

不同点:

参考:https://blog.csdn.net/lulei9876/article/details/39994825

适配器模式(原对象,适配对象,目标对象):解决了不兼容问题,将类自己的接口包裹在一个已存在的接口中,适配器类与原有类有相同的接口。将一个类通过某种方式转变为另一个类。

代理模式:用一个类去调用另一个类的方法,不对这个类进行直接操作。特点在于隔离,隔离调用类与被调用类的关系,通过一个代理类与调用。将一个类转换成具体的操作类。

桥接模式:以组合的方式依赖因素的抽象。适应多维度的变化。

你可能感兴趣的:(设计模式,设计模式,桥接模式,适配器模式,代理模式)