`
sunlong
  • 浏览: 85701 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

代理模式与装饰模式的区别

 
阅读更多

代理模式与装饰模式很像,至少我觉得很像,在网上查相关文章,看有人如下比喻,很形象。

 

 

代理模式:在不改变接口的前提下,控制对象的访问

例子:孙悟空扮演并代替高家三小姐
孙悟空扮演高家三小姐,所以可以说孙悟空与高家三小姐具有共同的接口。
如果猪八戒只想见见高家三小姐的娇好面容,或者谈谈天说说地,那么高家三小姐的“代理”孙悟空是允许的,但猪八戒想亲亲嘴,要搞弓虽奸,那么是不行的。
这是保护代理模式的应用。只有代理对象认为合适时,才会将客户端的请求传递给真实主题对象。


装饰模式:在不改变接口的前提下,动态扩展对象的功能

孙悟空有七十二般变化,他的每一种变化都给他带来一种附加的本领。他变成鱼儿时,就可以到水里游泳;他变成雀儿时,就可以在天上飞行。而不管悟空怎么变化,在二郎神眼里,他永远是那只猢狲。
装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任。换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。

分享到:
评论
1 楼 beijishiqidu 2013-12-22  
楼主,求OSGI完整版的资料,396212976@qq.com,多谢啦。

相关推荐

    java静态代理、动态代理、装饰设计模式

    它与代理模式类似,但更侧重于对对象功能的增强。装饰器通常继承自被装饰的对象,从而可以无缝替换原始对象。装饰器模式可以多次叠加,以实现不同层次的功能扩展。 ```java public abstract class ServiceDecorator...

    54-Spring设计模式之装饰器模式1

    装饰器模式与其他设计模式的比较 在 Spring 设计模式中,装饰器模式经常与其他设计模式比较。例如,代理模式、适配器模式和模板方法模式。 * 代理模式:代理模式和装饰器模式类似,但是代理模式更关心的是控制原有...

    java装饰模式及动态代理模式示例源码

    装饰模式和动态代理模式是Java编程中两种非常重要的设计模式,它们都在代码的扩展性和灵活性方面发挥着关键作用。下面将分别对这两种模式进行详细解释,并结合手写的数据库连接池和动态代理模式的使用进行深入探讨。...

    Ruby使用设计模式中的代理模式与装饰模式的代码实例共3页

    在编程领域,设计模式是解决常见问题的经过验证的、可重用的解决方案。...在阅读提供的"Ruby使用设计模式中的代理模式与装饰模式的代码实例共3页.pdf.zip"压缩包文件后,开发者可以更深入地理解这两种模式的实际应用。

    适配器模式,装饰模式和代理模式1

    适配器模式、装饰模式和代理模式 本文将详细介绍适配器模式、装饰模式和代理模式的概念、特点和应用场景,并通过实际的例子来阐述这三种模式的差异和相同点。 一、适配器模式 适配器模式是一种结构型设计模式,它...

    23种设计模式详细介绍与区别

    在本文中,我们将深入探讨标题提及的23种设计模式,并着重讨论桥接模式与适配器模式、装饰模式与代理模式、状态模式与策略模式,以及工厂模式之间的差异。 1. **桥接模式与适配器模式**: - **桥接模式**:将抽象...

    面向对象23种设计模式之代理模式

    在代理模式中,代理类作为真实对象的代表,它可以在客户端与真实对象交互时添加额外的行为,如监控、安全管理或者缓存等。 代理模式的核心思想是通过代理类来控制对原始对象的访问,这种控制可以体现在多个方面。...

    代理模式Demo代理模式代理模式Demo

    1. **原始对象(Real Subject)**:这是代理模式所代理的真实对象,它实现了与代理对象相同的接口,以便于代理对象可以在任何需要的地方代替它。 2. **代理对象(Proxy)**:代理对象持有对原始对象的引用,并且实现...

    [结构型模式] 装饰者模式的理解

    装饰者模式与代理模式有一定的相似性,但两者有明显的区别。装饰者关注于增强对象的行为,而代理则更侧重于控制访问,如权限控制、远程代理等。 为了更好地理解装饰者模式,可以参考提供的PDF文件。"装饰者模式-...

    Python实现适配器模式、装饰器模式、代理模式.md

    Python实现适配器模式、装饰器模式、代理模式

    设计模式之代理模式视频教学

    4. **代理模式与其他模式的结合**:代理模式常常和其他设计模式一起使用,例如装饰器模式,它们之间的区别和联系会有所讲解。 5. **代理模式的优缺点**:讨论代理模式的优点,如增加灵活性、解耦等,同时也会提到其...

    07代理模式_设计模式_

    代理模式是一种常用的设计模式,属于结构型模式,它在对象结构中引入了一个代理,以便提供对目标对象的访问控制或增强原有功能。...同时,掌握代理模式也是理解其他设计模式,如装饰器模式、策略模式等的基础。

    设计模式之代理模式

    代理模式是设计模式中的一种结构型模式,它在软件工程中扮演着重要的角色,尤其是在对象交互和控制访问方面。代理模式的核心思想是为一个对象提供一个代理,这个代理对象可以控制对原对象的访问,或者在原对象的基础...

    java 设计模式之代理模式(Proxy Pattern)实现代码及设计详解:动态代理模式、静态代理模式

    同时,代理模式也可以作为其他设计模式(如装饰器模式)的基础,提供更多的灵活性。 在实际开发中,理解并熟练运用代理模式,无论是静态代理还是动态代理,都能提高代码的可扩展性和可维护性,对于提升软件质量有着...

    51丨适配器模式:代理、适配器、桥接、装饰,这四个模式有何区别?1

    代理模式、桥接模式、装饰器模式和适配器模式虽然在代码结构上有些相似,但它们的核心目的和应用场景不同: - **代理模式**:为对象提供一个代理以控制对该对象的访问,如远程代理、虚拟代理、缓存代理等。 - **...

    23种设计模式详解PDF

    适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式(11): 策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、...

    23种设计模式 -设计模式图解.7z

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    Java设计模式:静态代理、装饰者、动态代理详解

    装饰者模式与静态代理类似,但更侧重于对对象功能的增强。它允许在运行时动态地给对象增加新的行为,而不需要修改原有类的代码。装饰者同样需要实现与被装饰对象相同的接口,但通常不直接持有被装饰对象,而是通过...

Global site tag (gtag.js) - Google Analytics