装饰者模式:动态的将新功能附加到对象上,具有扩展性。
假设现在有一个咖啡店订咖啡的需求,咖啡有N种,同时咖啡还可以加调料M种,另外在加调料的过程中调料的份数是不限量的。
如果按照传统的需求来说如果只是咖啡与调料的简单组合,那么毫无疑问类的数量是无限的。
但是如果我们换一个角度来想,假设把咖啡和调料都看做一种类型Drink。Drink同时还维护这Drink变量,这样就解决了上面的问题,这种情况类似于文件系统树状结构,把文件夹和文件夹当做一种类型就可以了。
组合模式也类似于上面的 都是维护一个自己的类型变量
网友评论