返回

工厂模式三兄弟的精致协作

IOS

在设计模式的浩瀚世界中,工厂三兄弟——简单工厂模式、工厂方法模式、抽象工厂模式——犹如三颗璀璨明珠,共同演绎着优雅的代码乐章。

简单工厂模式宛如一位熟练的工匠,直接面向客户端,根据传入的参数灵活地创建所需的对象。这种简洁高效的方式适用于小而轻量的应用场景,无需复杂的产品层次结构。

工厂方法模式犹如一个精明的经理,将对象创建的职责委托给专门的子类。这种灵活性使得客户端无需关心具体对象的创建方式,而子类可以根据实际情况灵活定制。

抽象工厂模式堪称一个庞大的家族企业,通过提供一个统一的接口,隔离客户端与具体产品的实现细节。这种设计确保了家族内部所有产品的兼容性,即使在需求变化时,也能保持系统的一致性和可扩展性。

工厂模式三兄弟并非孤立存在,而是相互协作,形成一个优雅的代码体系。简单工厂模式可用于创建简单的对象,工厂方法模式负责灵活地定制对象,而抽象工厂模式则确保家族内部产品的统一性。

这种精妙的协作犹如一场交响乐,各个乐器和谐共鸣,奏响软件设计的动听旋律。

// 简单工厂模式
public class ShapeFactory {
    public static Shape createShape(String type) {
        if ("circle".equals(type)) {
            return new Circle();
        } else if ("square".equals(type)) {
            return new Square();
        } else {
            return null;
        }
    }
}

// 工厂方法模式
public interface ShapeFactory {
    Shape createShape();
}

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

// 抽象工厂模式
public interface GUIFactory {
    Button createButton();
    Checkbox createCheckbox();
}

public class MacOSGUIFactory implements GUIFactory {
    @Override
    public Button createButton() {
        return new MacOSButton();
    }

    @Override
    public Checkbox createCheckbox() {
        return new MacOSCheckbox();
    }
}

工厂模式三兄弟的精妙协作完美诠释了设计模式的优雅与力量。通过合理的选择和组合,我们可以打造出灵活可扩展、简洁易维护的软件系统。让这些代码乐章在你的项目中奏响,感受设计模式之美的无限魅力。