亦称: Abstract Factory
抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。
假设你正在开发一款家具商店模拟器。 你的代码中包括一些类, 用于表示:
椅子
Chair 、 沙发
Sofa和 咖啡桌
CoffeeTable 。现代
Modern 、 维多利亚
Victorian 、 装饰风艺术
ArtDeco等风格生成 椅子
、 沙发
和 咖啡桌
。系列产品及其不同变体。
你需要设法单独生成每件家具对象, 这样才能确保其风格一致。 如果顾客收到的家具风格不一样, 他们可不会开心。
现代风格的沙发和维多利亚风格的椅子不搭。
此外, 你也不希望在添加新产品或新风格时修改已有代码。 家具供应商对于产品目录的更新非常频繁, 你不会想在每次更新时都去修改核心代码的。
首先, 抽象工厂模式建议为系列中的每件产品明确声明接口 (例如椅子、 沙发或咖啡桌)。 然后, 确保所有产品变体都继承这些接口。 例如, 所有风格的椅子都实现 椅子
接口; 所有风格的咖啡桌都实现 咖啡桌
接口, 以此类推。
同一对象的所有变体都必须放置在同一个类层次结构之中。