软考 系统架构设计师系列知识点 —— 设计模式之工厂模式

发布于:2025-04-11 ⋅ 阅读:(40) ⋅ 点赞:(0)

本文内容参考:

软考 系统架构设计师系列知识点之设计模式(2)_系统架构设计师中考设计模式吗-CSDN博客

https://baike.baidu.com/item/%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F?fromModule=lemma_search-box

设计模式-工厂方法模式(Factory Method)-CSDN博客

特此致谢!

Factory Pattern(工厂模式)

1. 概述

工厂模式(Factory Pattern),是Java中最常用的设计模式之一,它提供了一种创建对象的方式,使得创建对象的过程与使用对象的过程分离。工厂模式是最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式。工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A();工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。

2. 实现原理

工厂模式提供了一种创建对象的方式,而无需指定要创建的具体类。

通过使用工厂模式,可以将对象的创建逻辑封装在一个工厂类中,而不是在客户端代码中直接实例化对象,这样可以提高代码的可维护性和可扩展性。

工厂模式的核心思想就是把创建对象和使用对象解耦,由工厂负责对象的创建,而用户只能通过接口来使用对象。这种模式具有灵活应对变化的业务需求的优点,可以方便代码管理,避免代码重复。

3. 工厂模式的类型

(1)简单工厂模式(Simple Factory Pattern)

简单工厂模式不是一个正式的设计模式,但它是工厂模式的基础。它使用一个单独的工厂类来创建不同的对象,根据传入的参数决定创建哪种类型的对象。

(2)工厂方法模式(Factory Method Pattern)

工厂方法模式定义了一个创建对象的接口,但由子类决定实例化哪个类。工厂方法将对象的创建延迟到子类。

(3)抽象工厂模式(Abstract Factory Pattern)

抽象工厂模式提供一个创建一系列相关或互相依赖对象的接口,而无需指定它们具体的类。

4. 代码举例

定义一个工厂接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

public interface Product {
    void show();
}

public class ProductA implements Product {
    @Override
    public void show() {
        System.out.println("ProductA");
    }
}

public class ProductB implements Product {
    @Override
    public void show() {
        System.out.println("ProductB");
    }
}

public abstract class Factory {
    public abstract Product createProduct();
}

public class ConcreteFactoryA extends Factory {
    @Override
    public Product createProduct() {
        return new ProductA();
    }
}

public class ConcreteFactoryB extends Factory {
    @Override
    public Product createProduct() {
        return new ProductB();
    }
}


网站公告

今日签到

点亮在社区的每一天
去签到