Abstact Factory 模式思想原则:
为一组相关或相互依赖(如产品族)事物提供了统一的抽象接口。当需要这些事物的某一系列(系列内事物不可折分或单独出现)的时候,我们就可以在实现了该抽象接口的系列中选出相应的系列来创建一个具体的特例
假设:
我们经常在集市上看到这种情况,有的服装店专营运动服店,有的专营休闲服店,有的专营工作服店等.
这些服装店都被要求提供整套服装服务,整套服装由帽子,上衣,裤子,鞋子组成
应用:
当买运动系列服装时,我们就可以选择去运动服店买就行.
当买休闲系列服装时,我们就可以选择去休闲服店买就行.
当买礼服系列服装时,我们就可以选择去系礼服店,如果没有此店,新开一个这样类型店就行对原来不同主题店没有影响.
注意点:
同组事物中增加一个新事物是很困难的,它需要修改抽象统一接口,以及重写此接口所有实现
适用性
一个系统要独立于它的产品的创建、组合和表示时。一个系统要由多个产品系列中的一个来配置时。当你要强调一系列相关的产品对象的设计以便进行联合使用时。当你提供一个产品类库,而只想显示它们的接口而不是实现时。