ts中装饰者模式

59 阅读1分钟

具体类 实现 接口
抽象装饰类 实现同样接口
具体装饰类继承抽象类

/** 
 * 装饰者
 * 抽象组件
 */
interface Order{
    getPrice():number
}

class GoodOrder implements Order{
    getPrice(): number {
       return 100;
    } 
}

abstract class OrderDegriter implements Order{
     order:GoodOrder
     constructor(order:GoodOrder){
        this.order= order
     }
     getPrice(): number {
         return this.order.getPrice()
     }
}


 class OrderDZ extends OrderDegriter{
    
    getPrice(): number {
      return super.getPrice() -5
    }
    
 
}
const abc = new OrderDZ(new GoodOrder())


console.log(abc.getPrice())