🎨
Andy開發紀錄
  • 關於
    • 自介
  • 設計模式
    • 觀察者模型
    • 有限狀態機
    • 裝飾器模式
  • 其他
    • Scrum敏捷式開發
    • SOLID設計
    • TDD驅動測試開發
    • Event Driven Architecture
    • CQRS命令查詢職責分離
    • Concurrent並行相關
      • Single Thread Execution
      • 共用元件設計
        • CountDownLatchWorkPool
        • IForkWorkService
      • Pattern
        • THREAD-PER-MESSAGE
        • PRODUCER CONSUMER
        • SINGLE THREAD
        • Guarded Suspension 守衛模式
      • IQueue
        • ListQueue
        • BlockQueue
        • OrderBlockQueue
  • 元件設計
    • Sql Help
      • SQL Help Generate
      • StringBuilderGenerator
      • SQL Generate
    • excel工具
    • BDD行為驅動開發
    • 多工設計
      • 多工自動調整Thread數量
    • 常用Design Patten實作
    • Telegram Bot元件
    • 代碼元件
    • HCP API元件
    • 文字解析元件
    • MockitObject
    • 資料驗證元件
    • Zip壓縮工具
    • Sql Code Generate
  • 讀書心得
    • Clean code第一章
  • side project
    • 後端服務
  • IDEA
    • IDEA 外掛推薦
    • IDEA 外掛開發
Powered by GitBook
On this page

Was this helpful?

  1. 設計模式

裝飾器模式

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

需求題目

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

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

  • 美式:最基礎的咖啡

/**
 * 咖啡
 */
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();
    }
}
Previous有限狀態機NextScrum敏捷式開發

Last updated 2 years ago

Was this helpful?