Java工厂模式通过提供统一的接口来创建对象,将对象的实例化过程封装起来,有效隔离具体实现细节,从而提升程序的可扩展性与灵活性。该模式包含三种形式:简单工厂、工厂方法和抽象工厂,三者依次递进,逐步抽象,适用场景更广泛,通用性更强。
1、 简单工厂模式又称静态工厂模式,其核心在于提供一个统一的接口用于创建对象。在此模式中,工厂类居于中心位置,负责根据需求决定实例化哪个具体产品类,集中管理对象的生成过程。下图即为该模式的一个典型应用示例,清晰展示了其结构与工作方式。
2、 工厂角色是该模式的核心,通常以具体类的形式在Java中实现,包含一定的判断逻辑,负责对象的创建与管理。
3、 抽象产品角色通常作为具体产品的父类或接口,在Java中通过接口或抽象类实现,为子类提供统一的规范与结构。
4、 工厂类负责创建具体产品对象,该对象为特定角色的实例,在Java中通过具体类实现,所示。
5、 测试类示例,见图示
6、 工厂方法模式是对简单工厂的抽象与扩展,不再由单一工厂类决定实例化何种产品,而是通过抽象工厂的子类来实现具体产品的创建,从而提升灵活性与可扩展性。
7、 抽象工厂角色是工厂方法模式的核心,为具体工厂提供必须实现的接口或继承的父类,所示。
8、 具体工厂负责实现业务逻辑,创建具体产品实例,所示。
9、 抽象产品角色作为父类或接口,供具体产品类继承或实现。
10、 具体产品角色由具体工厂创建,其对象为该角色的实例,通过Java中的具体类实现,所示。
11、 测试类示例,见下图
12、 抽象工厂模式包含一个或多个抽象产品,共同组成产品族,如示例所示。
13、 抽象工厂类示意图
14、 具体工厂类所示
15、 抽象产品类别,所示
16、 具体产品类别所示
17、 测试类示意图
