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

适配器模式

  • 特点在于\color{red}{兼容}

  • 主要是对现有接口做转换

  • 一般用于解决接口不匹配问题

装饰模式

  • 特点在于\color{red}{增强}

  • 被装饰的对象必须是外部传入的,常见的是构造方法传入

  • 一般用于功能增强,可能会有很多层装饰,可以随意排列组合。典型应用:java.io包

代理模式

  • 特点在于\color{red}{隔离}

  • 隔离调用类和被调用类的关系,通过一个代理类去实现

  • 一般用于访问控制

适配器模式VS装饰模式

  • 适配器包装的是不同类型的对象,然后将其伪装成自己的同类;装饰者包装的是自己的同类,相同的接口或者父类

适配器模式VS代理模式

  • 适配器是自己新建接口并实现,在实现中包含被适配的接口;代理模式与源对象实现同一接口

  • 适配器模式主要改变所考虑对象的接口;而代理模式不能改变所代理对象的接口,只能控制对其的操作

装饰模式VS代理模式

  • 装饰模式从来不创建被装饰的对象,它总是添加新功能到已经存在的对象上面;而代理模式在被代理对象不存在的时候会创建被代理对象

  • 装饰模式可以通过嵌套装饰添加多重额外功能,而代理模式一般不推荐使用嵌套代理

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