抽象工厂(Abstract Factory)模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在抽象工厂模式中,客户端不依赖于产品类实例的如何被创建、组合和表达的细节,这对于产品族(即一组相互关联或相互依赖的产品)的创建尤其有用。
抽象工厂模式的主要角色
- 抽象工厂(Abstract Factory):声明一个用于创建对象的接口。
- 具体工厂(Concrete Factory):实现抽象工厂接口,创建具体产品的实例。
- 抽象产品(Abstract Product):声明一个产品的接口。
- 具体产品(Concrete Product):实现了抽象产品接口。
示例代码
以下是一个使用Java实现的抽象工厂模式的简单示例,其中涉及到了两个产品族:GUI(图形用户界面)元素和命令行(CLI)元素。每个产品族都有两种产品:按钮(Button)和文本框(TextBox)