返回
工厂模式:揭开对象创建的奥秘
前端
2023-12-16 06:25:53
工厂模式:灵活对象的塑造者
进入设计模式的殿堂,我们首先邂逅的便是声名鹊起的「工厂模式」。宛如学习英语中的「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
,由两个具体的子工厂 CircleFactory
和 SquareFactory
来实现。客户端通过 ShapeClient
类使用工厂来创建对象。
结论
工厂模式是一种强大而灵活的设计模式,它提供了创建对象的可扩展和可维护的机制。通过抽象化和分离关注点,工厂模式使系统能够在不修改现有代码的情况下适应变化。