装饰者(Decorator)模式

装饰者模式是一种设计模式,能不修改对象结构的情况下,动态地为对象添加新的功能。对比于通过继承来扩展,它更为灵活。例如在咖啡店场景中,装饰者模式可以用于为咖啡添加如糖、牛奶等配料,避免大量继承类的产生。装饰者和代理模式相似,但代理模式通常在编译时确定对象关系,不支持多层嵌套,而装饰者模式能在运行时递归构建。
摘要由CSDN通过智能技术生成

装饰者模式是允许向一个新对象添加新的功能,但又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。
就增加功能来说,装饰器模式相比生成子类更为灵活。
例子:
如果我们去咖啡店,有一种咖啡,该咖啡可以加糖,牛奶,奶泡等等,如果我们需要加糖和牛奶,常规的写法就是分别继承糖的接口和牛奶的接口,然后实现。但是如果添加种类很多的话,就会形成大量的继承类,给维护造成很大的麻烦。这就需要继承类来为其添加新功能了。

Coffee接口

public abstract class Coffee {
    public abstract int getPrice();
    public abstract String getName();
}

原始咖啡

public 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值