设计模式——装饰模式(用装饰者来统计两种东西的总价,第一次set是咖啡,第二次set是调料)
在扩展咖啡种类或调料时统计咖啡价钱和调料的价钱很方便,不需要更改修饰类只需加一个咖啡扩展即可。
定义一个抽象类,里面有一个cost方法;Coffee继承这个抽象类并实现了cost方法用于调用父类的cost方法;其余扩展咖啡类都继承这个Coffee类,设置了自己的描述和价格(因为间接继承抽象类);此时设置一个继承抽象类(Drink)的装饰者类(Decortor),用于统计咖啡的价钱和调料的价钱的总和,用于统计咖啡【】的描述和调料的描述的总描述。
当左边set的时候将抽象类的值改了;当右边set的时候将抽象类的值改了;此时将左边的对象传入调料obj获得参数值和super的参数值相加得到总价。
抽象类(Drink)
继承上面的抽象类(Coffee),并实现了抽象方法cost
----------------------------------------------------------------------------------------------------------------------------------------------
上面Cofee的子类一(Espresso)
上面Cofee的子类二(LongBlack)
----------------------------------------------------------------------------------------------------------------------------------------------
装饰者继承抽象类Drink
obj传入的是咖啡对象
----------------------------------------------------------------------------------------------------------------------------------------------
继承装饰者的供选择的调味一
继承装饰者的供选择的调味二
----------------------------------------------------------------------------------------------------------------------------------------------