装饰模式与代理模式对比

首先你要对这二种模式有一定的了解(具体略)

用一句话来解释:同样是学剑的,一个用来维护正义,一个用来杀人自乐

1,相同点:具有相同的结构和思想

a,实现同一个接口的两个类:主体和辅助

b,使用时将主体类对象传入辅助类中进行操作

2,不同点:

a,出发点不同:

装饰模式存在的意义在于:

        1,对继承的另类实现,避免继承出现的内生性问题(改变父类的一些实现会对子类造成毁灭性影响),辅助类同样能“继承”主体类的功能,且,主体类内部改变不会对辅助类造成影响;

        2,增强主体类的功能,辅助类好像是一个具有不同功能的“壳”,主体穿不同的“壳”就能就有不同额外的能力,而且还可以穿多层“壳”,具有多重“能力组合”

        3,辅助类对主体类只有增强,而不能进行控制

代理模式存在的意义在于:

        主体类只是辅助类的一个工具,辅助类以自我实现为主,对主体类具有绝对的控制权(决定其是否执行、改变其执行结果、替换其执行逻辑),李代桃僵,反客为主,通过对主体类绝对的控制达到自己的目的;

b,用法差异:不同的目的决定了二者在应用上的差别

        1,装饰模式必须让主体类的方法得以执行,自己以增强主体类功能为目的;且可以造不同的壳,多个壳可以组合使用;不仅可以实现同个接口,壳们还可以继承同一个类

        2,代理模式要让主体类作为自己的附属,对外将其隐藏,对内将其任意处置,并使自己作为“真身”曝光出去;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,301评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,924评论 18 139
  • 落日 高原 风幡 未诵完的 关于你的 经卷 发黄 失散
    左手边的河阅读 189评论 0 0
  • 浩渺行无极,扬帆但信风。浮在水里的人生,会去向何方?只有梦一样的彼岸。如同戏一样的人生,没有反悔的可能。 游离在这...
    文山鹿阅读 248评论 11 6
  • 第二十章 互相帮助, 共同进步 林新成回到家里,把自己因怕再挨李小兵的打,在考...
    林木成荫阅读 322评论 0 4