软件帮帮网
柔彩主题三 · 更轻盈的阅读体验

Java工厂模式:写代码像开奶茶店一样简单

发布时间:2025-12-29 12:10:59 阅读:81 次

你有没有想过,写代码其实和开一家奶茶店差不多?比如顾客来买奶茶,不说具体做法,只说要一杯‘珍珠奶茶’或者‘椰果奶茶’,店员就知道该怎么做。这个过程背后其实就藏着一个编程里常用的设计思路——Java工厂模式。

什么是工厂模式?

在Java开发中,我们经常需要创建各种对象。如果每个地方都用 new 来直接生成对象,代码就会变得很乱,改起来也麻烦。工厂模式就是为了解决这个问题,它把对象的创建过程集中管理,就像奶茶店的制作台,统一出餐,不乱套。

举个例子,假设你在做一个订单系统,要创建不同类型的订单:普通订单、会员订单、团购订单。如果不使用工厂模式,代码可能到处都是 new OrderA()、new OrderB(),一旦需求变了,就得翻遍整个项目去改。

简单工厂:一个人搞定所有

最基础的是简单工厂模式。它用一个类专门负责创建对象。比如:

public class OrderFactory {
    public Order createOrder(String type) {
        if ("normal".equals(type)) {
            return new NormalOrder();
        } else if ("vip".equals(type)) {
            return new VipOrder();
        } else if ("group".equals(type)) {
            return new GroupOrder();
        } else {
            return null;
        }
    }
}

以后要用哪种订单,只需要告诉工厂一声,它就给你返回对应的对象,调用方完全不用关心内部怎么做的。

工厂方法:每个产品都有自己的生产线

简单工厂有个问题:每次加新产品,还得回头去改工厂类。这不符合“对扩展开放、对修改关闭”的原则。这时候可以用工厂方法模式。

它让每个具体产品对应一个具体的工厂。比如:

interface OrderFactory {
    Order createOrder();
}

class NormalOrderFactory implements OrderFactory {
    public Order createOrder() {
        return new NormalOrder();
    }
}

class VipOrderFactory implements OrderFactory {
    public Order createOrder() {
        return new VipOrder();
    }
}

这样新增一种订单,只要多写一个工厂类就行,老代码不用动,维护起来轻松多了。

什么时候该用工厂模式?

如果你发现代码里有大量 instanceof 判断,或者 new 出来的对象类型五花八门,而且将来可能还会加新的类型,那就可以考虑上工厂模式了。

它不是万能药,但能让代码更清晰、更容易扩展。特别是在团队协作中,每个人负责不同的产品线,工厂模式能减少互相之间的干扰。

就像奶茶店分工明确,点单的不用懂怎么做,后厨也不用管谁来买的,各司其职,效率自然高。