意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类 场景: 一个系统要独立于它的产品的创建、组合和表示时一个系统要有多个产品系列中的一个来配置时当你要强调一系列祥光的产品对象的设计以便进行联合使用时当你提供一个产品类库,而只想显示他们的接口而不是实现时 类图: 图片来自《设计模式之禅》 优点: 对抽象依赖而不是实现依赖,维护代码一致性,使得代码便于相互替换 缺点: 当需要新的产品时,往往需要同时修改抽象及实现。