我们讨论的是向咖啡中加调味剂的问题,(有点像调酒!)
此时的咖啡早已经冲好,并放在一个叫coffee的杯子里面.
现在我们要选择调味剂种类(糖,牛奶等),并记录在纸上(list),然后取出调味剂放入decorator的搅拌器内搅拌成一种新种类的调味剂(甜牛奶),取出新调味剂(get方法)倒入coffee杯子中,一杯甜牛奶咖啡就泡好了.
为什么我们不能直接向咖啡中先加糖再加咖啡呢?
因为banq大虾设计一个单态类(Singleton)来hold当前的CoffeeImp,一杯咖啡中只能加一种调味剂,所以在加之前,糖和牛奶应该先搅拌好!为什么要用单态类(Singleton)来hold当前的CoffeeImp,我还没领悟到!
为什么我们不把甜牛奶当作已有的调味剂呢?
就和调酒为什么是现场调制的问题一样.
如果调味剂种类越多,那么被要求用来分开装调味剂的容器也就更多了.CoffeeImp的子类越多系统的复杂性也就越高!