1. 程式人生 > 其它 >Java 設計模式之裝飾模式,Java 裝飾模式

Java 設計模式之裝飾模式,Java 裝飾模式

Java 設計模式之裝飾模式,Java 裝飾模式

================================

©Copyright 蕃薯耀2021-07-01

https://www.cnblogs.com/fanshuyao/

一、Java 裝飾模式

1、介面

public interface FastFood {

    /**
     * 花費金額
     * @return
     */
    public double cost();
    
    /**
     * 描述
     * @return
     */
    public String desc();
}

2、具體的實現類

/**
 * 炒飯,具體的類
 *
 */
public class FriedRice implements FastFood{

    @Override
    public double cost() {
        return 10;
    }

    @Override
    public String desc() {
        return "炒飯";
    }

}

3、裝飾抽象類

/**
 * 配菜抽象類
 *
 */
public abstract class SideDish implements FastFood{

    //快餐類
    private
FastFood fastFood; public SideDish(FastFood fastFood) { this.fastFood = fastFood; } @Override public double cost() { return fastFood.cost(); } @Override public String desc() { return fastFood.desc(); } }

4、裝飾類子類

public class SideDishEgg extends
SideDish { public SideDishEgg(FastFood fastFood) { super(fastFood); } @Override public double cost() { return 1 + super.cost(); } @Override public String desc() { return "雞蛋" + " + " + super.desc(); } }

5、裝飾類子類2

public class SideDishPork extends SideDish {

    public SideDishPork(FastFood fastFood) {
        super(fastFood);
    }

    @Override
    public double cost() {
        return 2 + super.cost();
    }

    @Override
    public String desc() {
        return "豬肉" + " + " + super.desc();
    }

}

6、測試結果

炒飯
10.0
--------------------------------------------------
雞蛋 + 炒飯
11.0
--------------------------------------------------
雞蛋 + 雞蛋 + 炒飯
12.0
--------------------------------------------------
豬肉 + 雞蛋 + 雞蛋 + 炒飯
14.0

(時間寶貴,分享不易,捐贈回饋,^_^)

================================

©Copyright 蕃薯耀2021-07-01

https://www.cnblogs.com/fanshuyao/