返回

工厂模式:揭开对象创建的奥秘

前端

工厂模式:灵活对象的塑造者

进入设计模式的殿堂,我们首先邂逅的便是声名鹊起的「工厂模式」。宛如学习英语中的「abandon」,它因其易懂性与广泛应用而备受推崇。

对象创造的幕后推手

工厂模式肩负着创造对象的神圣使命。在系统架构中,对象犹如基石,承载着代码的精髓。因此,工厂模式便应运而生,成为对象创建的幕后推手。

灵活性之舞

工厂模式的魅力在于其灵活性。它允许我们在不修改现有代码的情况下创建不同的对象。想象一下,当需要更换系统中的对象类型时,传统方法需要大动干戈地改写代码。而工厂模式却能轻而易举地应对,仿佛一位技艺高超的乐师,在不触及旋律主线的情况下,轻松变幻乐器。

抽象与实例化共舞

工厂模式在抽象和实例化之间构建了一座桥梁。它定义了一个抽象工厂,由具体的子工厂来实现对象的实际创建。这种分离使我们能够在不了解具体对象类型的情况下使用工厂。

用代码讲述故事

为了更好地理解工厂模式,让我们用代码来演绎一场精彩的故事:

public interface ShapeFactory {
    Shape createShape(String shapeType);
}

public class CircleFactory implements ShapeFactory {
    @Override
    public Shape createShape(String shapeType) {
        return new Circle();
    }
}

public class SquareFactory implements ShapeFactory {
    @Override
    public Shape createShape(String shapeType) {
        return new Square();
    }
}

public class ShapeClient {
    public Shape createShape(String shapeType) {
        ShapeFactory factory = getFactory(shapeType);
        return factory.createShape(shapeType);
    }

    private ShapeFactory getFactory(String shapeType) {
        if (shapeType.equals("CIRCLE")) {
            return new CircleFactory();
        } else if (shapeType.equals("SQUARE")) {
            return new SquareFactory();
        } else {
            throw new IllegalArgumentException("Invalid shape type");
        }
    }
}

在这个代码示例中,我们创建了一个抽象工厂 ShapeFactory,由两个具体的子工厂 CircleFactorySquareFactory 来实现。客户端通过 ShapeClient 类使用工厂来创建对象。

结论

工厂模式是一种强大而灵活的设计模式,它提供了创建对象的可扩展和可维护的机制。通过抽象化和分离关注点,工厂模式使系统能够在不修改现有代码的情况下适应变化。