「设计模式详解」工厂模式:简单工厂模式原理、实现与优缺点分析 | 附Java代码示例

大家好,欢迎来到程序视点!我是你们的新朋友.安戈!

设计模式概述:创建型模式的基石

设计模式是软件开发中解决特定问题的经典方案模板,由四位软件工程师(GoF)在《设计模式:可复用面向对象软件的基础》中系统化提出。让我们先中其中的【创建型模式】开始。

【创建型模式】专注于对象创建机制,而工厂模式系列是其中最基础且实用的模式之一。

工厂模式的核心价值

工厂模式通过封装对象创建过程,提供以下优势:

  • 降低代码耦合度

  • 提高系统可扩展性

  • 统一对象创建接口

  • 简化复杂对象的创建过程

简单工厂模式深度解析

模式定义与角色划分

简单工厂模式(Simple Factory Pattern),又称静态工厂方法模式,包含三个核心组件:

  1. 工厂类(PhoneFactory):负责根据输入参数创建具体产品实例

  2. 产品抽象类/接口(Phone):定义所有产品的公共接口

  3. 具体产品类(HuaweiPhone/ApplePhone):实现抽象产品的具体功能

image

Java实现示例

// 产品接口
public interface Phone {
    String getDescription();
}

// 具体产品实现
public class HuaweiPhone implements Phone {
    @Override
    public String getDescription() {
        return "华为旗舰智能手机";
    }
}

public class ApplePhone implements Phone {
    @Override
    public String getDescription() {
        return "iPhone系列智能手机";
    }
}

// 工厂类
public class PhoneFactory {
    public static Phone createPhone(String brand) {
        switch(brand.toLowerCase()) {
            case "huawei":
                return new HuaweiPhone();
            case "apple":
                return new ApplePhone();
            default:
                throw new IllegalArgumentException("不支持的手机品牌");
        }
    }
}

客户端调用方式

public class Client {
    public static void main(String[] args) {
        Phone huawei = PhoneFactory.createPhone("huawei");
        System.out.println(huawei.getDescription());
        
        Phone iPhone = PhoneFactory.createPhone("apple");
        System.out.println(iPhone.getDescription());
    }
}

模式优缺点与适用场景分析

优势体现

  • 封装创建逻辑:客户端无需了解对象创建细节

  • 接口统一:所有产品通过统一接口访问

  • 降低耦合:客户端与具体产品类解耦

显著缺陷

  1. 违反开闭原则:新增产品类型需修改工厂类源码

  2. 职责过重:工厂类集中了所有创建逻辑

  3. 扩展困难:产品类型增多会导致工厂类臃肿

典型应用场景

  • 产品类型较少且不频繁变化

  • 客户端不关心具体产品创建过程

  • 需要统一管理对象创建逻辑

演进方向:工厂方法模式

简单工厂模式虽然简单实用,但其扩展性问题催生了更灵活的工厂方法模式(Factory Method Pattern)

我们下一篇文章继续为你分享~


最后

【程序视点】助力打工人减负,从来不是说说而已!

后续安戈会继续详细分享更多实用的工具和功能。欢迎关注【程序视点】,这样就不会错过之后的精彩内容啦!

你的 「点赞/收藏」,安戈都看得见哦~

posted @ 2025-08-01 00:00  AI激活实验室  阅读(93)  评论(0)    收藏  举报