装饰者模式和适配器模式

1. 装饰者模式

装饰者模式是比较常用的模式,比如Spring session、Mybatis缓存中以及JDK的java.io包中都有着广泛的应用。

1.定义

动态的将责任附加到对象身上。若要扩展功能,装饰者提供比继承更弹性的替代方案。

2.优缺点

  • 优点:在不影响其他类的前提下增加功能,当不能使用继承的时候可以使用装饰者模式

  • 缺点:使用装饰者模式使得小的类变多,甚至出现类爆炸的情况,在调用关系复杂,不易排查错误。

3.类图

4. 用到的设计原则

  1. 对扩展开放,对修改关闭
  2. 封装变化
  3. 面向抽象
  4. 多用组合少用继承

 

2. 适配器模式

适配器模式也是一个比较常用的设计模式,他又分为对象适配器模式和类适配器模式。

1.定义:

将一个类的接口,转换为客户期望的另一个接口。适配器让原本不兼容的类可以合作无间。

2.优缺点:

  • 优点:增加类的复用性,灵活性和扩展性都很好,符合开闭原则
  • 缺点:增加代码复杂性,调用较多,排查比较困难。

3.类图

4. 用到的设计原则

  1. 对扩展开放,对修改关闭
  2. 多用组合,少用继承
  3. 面向抽象

3.两种设计模式的联系与区别

在学习这两种设计模式的时候,感觉他们十分的相似,但是却有不尽相同

1.装饰者模式

表示的是与“责任”相关的,每当用到装饰者模式,就表示有新的行为或责任要加入其中。装饰者可以被包装多次,对用户来说他不知道装饰的对象被装饰了多少次。

2.适配器模式

一定会进行接口的转换,客户也是被解耦的。

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值