Java 設計模式之裝飾模式,Java 裝飾模式
阿新 • • 發佈:2021-07-01
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{ //快餐類 privateFastFood 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 extendsSideDish { 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/