美文网首页
装饰(decorate)模式

装饰(decorate)模式

作者: 莫库施勒 | 来源:发表于2019-08-02 19:01 被阅读0次
public interface Beverage {
    public double cost();
}
public class HouseBlend implements Beverage{
    @Override
    public double cost() {
        return 1;
    }
}
public class DarkRoast implements Beverage{
    @Override
    public double cost() {
        return 1;
    }
}
public abstract class CondimentDecorator implements Beverage{
    protected Beverage beverage;
}
public class Mocha extends CondimentDecorator {

    public Mocha(Beverage beverage) {
        this.beverage = beverage;
    }

    @Override
    public double cost() {
        return 1 + beverage.cost();
    }
}
public class Milk extends CondimentDecorator {

    public Milk(Beverage beverage) {
        this.beverage = beverage;
    }

    @Override
    public double cost() {
        return 1 + beverage.cost();
    }
}
public class StartbuzzCoffee {
    public static void main(String[] args) {
        Beverage beverage = new HouseBlend();
        beverage = new Mocha(beverage);
        beverage = new Milk(beverage);
        System.out.println(beverage.cost());
    }
}

相关文章

  • 装饰(decorate)模式

  • 装饰模式(Decorate Pattern)

    定义  装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。(不使用继承) 结构图 Co...

  • 装饰者模式 decorate

    装饰者模式:在不改变原对象的基础上,通过对其进行包装(添加属性或方法)使原有对象可以满足更复杂需求。 在面向对象语...

  • 装饰者模式——decorate

    本文部分内容摘自维基百科:https://zh.wikipedia.org/wiki/%E4%BF%AE%E9%A...

  • 设计模式之装饰者(Decorate)模式

    什么是装饰者模式?   装饰者模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,...

  • structure:装饰器模式 (Decorate Patter

    定义:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 解决继承滥用的问题,类设计死...

  • 装饰者模式

    Decorate 模式 定义 动态地将责任/功能附加到对象上。 如要扩展功能,装饰者提供了比继承者更有弹性的代替方...

  • Decorate Pattern装饰者模式-- iOS继承与代理

    场景 写这篇文章的背景是在看casatwy的网络层架构代码时对子类继承和协议代理方法的实现产生了疑惑,进行了探索。...

  • 装饰者(Decorator)模式

    装饰者(Decorator)模式装饰模式又名包装(Wrapper)模式。装饰模式是继承关系的一个替代方案。装饰模式...

  • 11.4设计模式-装饰模式-讲解

    设计模式-装饰模式 装饰模式详解 装饰模式在android中的实际运用,避免了耦合 1. 装饰模式详解 2.装饰模...

网友评论

      本文标题:装饰(decorate)模式

      本文链接:https://www.haomeiwen.com/subject/prsrdctx.html