裝飾器模式

一種替代繼承方式的方法,可滿足擴充功能的方式

需求題目

當製作美式行為時,若得知需產生拿鐵咖啡時,可以透過美式咖啡加入拿鐵即可

  • 拿鐵:透過美式咖啡裝飾成拿鐵

  • 美式:最基礎的咖啡

/**
 * 咖啡
 */
public interface ICoffee {

    /**
     * 製作
     */
    void make();
    
}




**
 * 美式咖啡
 */
@Slf4j
public class Americano implements ICoffee{


    @Override
    public void make() {
        log.info("加入黑咖啡");
        log.info("加水");
    }
}


/**
 * 拿鐵
 */
@Slf4j
public class Latte implements ICoffee{
    private Americano americano;

    public Latte(Americano americano) {
        this.americano = americano;
    }

    @Override
    public void make() {
        log.info("加入牛奶");
        this.americano.make();
    }
}

Last updated

Was this helpful?