《Javascript设计模式》读书笔记之“装饰者模式”

本文深入探讨了装饰者模式在Python编程中的使用,解释了其如何在不改变接口的情况下灵活地添加功能,与组合模式的区别及适用场景,并详细列举了装饰者模式的四种修改对象方式。

装饰者模式用于透明的把对象包装在具有同样接口的对象中。

在不改变接口的情况下,装饰者模式比创建子类更合适。相较于创建子类,装饰者模式可以节省很多代码。

装饰者模式和组合模式有很多共同点,它们都用来包装对象,它们都与所包装的对象实现同样的接口并且会把任何方法调用传递给这些对象。那么二者间有什么区别呢,组合模式的目的是组织子对象并不修改方法调用,而装饰者模式的目的是修改方法调用。

装饰者修改对象的方式有四种: 

  1、在方法调用之后添加行为,原有行为基础上添加或修改返回结果

  2、在方法调用之前添加行为,在原有行为之前进行处理或者修改原有行为的参数

  3、替换方法

  4、增加新方法

适用场景:

  需要为类添加新特性或者功能,当派生子类不太现实时就应该使用装饰者模式。派生子类不现实指新特性比较多且可任意组合时,这种情况下仍然派生子类的话就会产生大量的子类、大量的代码,给维护带来麻烦。

装饰者模式的主要缺点是它会破坏类型,当你的代码基于类型检查时就会出问题。再一个缺点就是略微复杂。

转载于:https://my.oschina.net/zhaoxiaoben/blog/161444

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值