首先,Decorator(Dec):为对象添加额外的职责。Abstract Factory(AF):为特定的客户创建对象组。
初学,对Decorator有一些看法。我认为AF可以取代Dec,因为我认为可以把对象的职责也当做对象,由此可以用AF代替Dec.把这个疑问询问蜡笔先生,得到回答如下:
“首先,AF模式是个创造型模式,他的目标是为了解决一组相关对象的构造问题。
而Decorator是动态运行时添加职责。
AF的结果如果不配合其他的IoC机制,他是相对静态的,而Decorator则是运行时动态组装、动态拆解的。
用途不同。”
问题解决了,关键在于Decorator是动态运行时添加职责。如果把职责也看成对象,那么AF就是静态添加职责。