设计模式之装饰器模式和代理模式

结构型模式

装饰器模式

允许向一个现有的对象添加新的功能,同时又不改变其结构

注:这句话要深入理解可看https://www.cnblogs.com/volcano-liu/p/10897897.html中汉堡包的例子

设计模式之装饰器模式和代理模式_第1张图片

注:设计模式不一定单独使用,可以混合使用,比如上图的咖啡就可以是工厂模式下的到的咖啡

代理模式

设计模式之装饰器模式和代理模式_第2张图片

当一个对象不适合或者不能直接引用另一个对象,为其他对象提供一种代理以控制对这个对象的访问

结构相似但还是有区别:

目的不同  装饰器增强自身(第三方是我内部),代理是找经纪人(外部)

依赖不同 代理类依赖委托类,装饰角色依赖更灵活点

java有三种代理,用法可参考https://www.cnblogs.com/jie-y/p/10732347.html

为什么可以得看源码

你可能感兴趣的:(设计模式之装饰器模式和代理模式)