适配器模式,代理模式,装饰模式区别

代理模式(好比皇帝下旨一样,皇帝从来不自己宣布自己的旨意,都是让太监代理宣布圣旨,而官员(相当于客户端)只能通过太监(代理)知道皇帝的旨意!)

 装饰模式(好比皇帝通过翻牌(外观类)来选择哪个妃嫔侍寝!这样就降低了皇帝和嫔妃的耦合度,皇帝就可以专心朝政了!)

 适配器模式(好比有一远道而来的洋人,皇帝(客户端)听不懂外语,只能通过翻译(适配器)与其沟通!)


相同点
它们都作用于用户与真实被使用的类或系统之间,作一个中间层,起到了让用户间接地调用真实的类的作用。
区别点
1、代理与外观:代理对象代表一个单一对象,而外观对象代表一个子系统。
2、代理与适配器:代理是一种原来对象的代表。适配器不是一个代表,只需要为了客户端与目标对象的兼容,进行了一些适配操作。
3、外观与适配器:适配器是使两个已有的接口协同工作,而外观则是为现存系统提供一个增强型的访问接口。适配器是用来适配对象的,而外观是用来适配整个子系统的。

总结
1、代理模式,代理者保存一个被代理的一个对象;适配器模式,保存了一个被适配的对象;而外观模式,就保存了各个子系统对象,然后根据实际逻辑组合。
2、代理模式提供与真实的类一致的接口,意在用代理类来处理真实的类,实现一些特定的服务或真实类的部分功能,外观模式注重简化接口,适配器模式注重转换接口。

原文地址:https://www.cnblogs.com/shijianchuzhenzhi/p/13284174.html