美文网首页
Java设计模式-工厂模式(Factory Pattern)

Java设计模式-工厂模式(Factory Pattern)

作者: angelali_90b4 | 来源:发表于2023-12-13 08:54 被阅读0次

工厂模式(Factory Pattern)是 Java 中常见的设计模式之一,用于通过工厂类创建对象,而不是直接使用构造函数。

工厂模式可以将对象的创建和使用分离,使得代码更加灵活、可扩展和易维护。常见的工厂模式有三种实现方式:简单工厂模式、工厂方法模式和抽象工厂模式。

简单工厂模式
简单工厂模式(Simple Factory Pattern)是最简单的工厂模式,它通过一个工厂类来创建对象,而不需要直接使用构造函数。具体实现如下:

public class SimpleFactory {
    public static Product createProduct(String type) {
        if (type.equals("A")) {
            return new ConcreteProductA();
        } else if (type.equals("B")) {
            return new ConcreteProductB();
        }
        return null;
    }
}

public interface Product {
    void doSomething();
}

public class ConcreteProductA implements Product {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA do something");
    }
}

public class ConcreteProductB implements Product {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB do something");
    }
}

在这个示例中,我们定义了一个工厂类 SimpleFactory 和两个产品类 ConcreteProductA 和 ConcreteProductB,它们都实现了同一个产品接口 Product。SimpleFactory 类提供一个静态方法 createProduct(String type) 来创建产品对象,根据不同的参数类型来创建不同的产品对象。通过这种方式,我们可以在不暴露产品类的构造函数的情况下创建产品对象。

工厂方法模式
工厂方法模式(Factory Method Pattern)是一个稍微复杂一些的工厂模式,它将工厂抽象成一个接口或抽象类,每个具体工厂类只负责创建特定的产品,而不是像简单工厂模式那样负责创建所有产品。具体实现如下:

public interface Factory {
    Product createProduct();
}

public class ConcreteFactoryA implements Factory {
    @Override
    public Product createProduct() {
        return new ConcreteProductA();
    }
}

public class ConcreteFactoryB implements Factory {
    @Override
    public Product createProduct() {
        return new ConcreteProductB();
    }
}

在这个示例中,我们定义了一个工厂接口 Factory 和两个具体工厂类 ConcreteFactoryA 和 ConcreteFactoryB,它们都实现了工厂接口,并负责创建特定的产品对象。这里的关键是将工厂抽象成一个接口或抽象类,每个具体工厂类负责创建特定的产品对象,从而使得代码更加灵活和易扩展。

抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是工厂模式的高级形式,它提供一个接口或抽象类来定义一系列相关或依赖对象的工厂,而不需要指定具体类。具体实现如下:

public interface AbstractFactory {
    ProductA createProductA();

    ProductB createProductB();
}

public interface ProductA {
    void doSomething();
}

public interface ProductB {
    void doSomething();
}

public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public ProductA createProductA() {
        return new ConcreteProductA1();
    }

    @Override
    public ProductB createProductB() {
        return new ConcreteProductB1();
    }
}

public class ConcreteFactory2 implements AbstractFactory {
    @Override
    public ProductA createProductA() {
        return new ConcreteProductA2();
    }

    @Override
    public ProductB createProductB() {
        return new ConcreteProductB2();
    }
}

public class ConcreteProductA1 implements ProductA {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA1 do something");
    }
}

public class ConcreteProductA2 implements ProductA {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA2 do something");
    }
}

public class ConcreteProductB1 implements ProductB {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB1 do something");
    }
}

public class ConcreteProductB2 implements ProductB {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB2 do something");
    }
}

在这个示例中,我们定义了一个抽象工厂接口 AbstractFactory 和四个产品接口 ProductA、ProductB、ConcreteProductA1 和 ConcreteProductB1。AbstractFactory 接口定义了两个工厂方法 createProductA() 和 createProductB(),每个具体工厂类负责创建一系列相关或依赖对象的工厂。例如,ConcreteFactory1 负责创建 ConcreteProductA1 和 ConcreteProductB1,而 ConcreteFactory2 负责创建 ConcreteProductA2 和 ConcreteProductB2。这样我们就可以以一种通用的方式来创建一系列相关的对象。

相关文章

  • 设计模式-工厂模式

    工厂模式(Factory Pattern): 1.简介 工厂模式(Factory Pattern)是 Java 中...

  • 设计模式之工厂模式

    工厂模式 工厂模式(Factory Pattern)是Java中最常用的设计模式之一,这种设计模式属于创建型模式,...

  • 设计模式-工厂模式

    工厂模式定义: 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

  • 设计模式之工厂模式详解(附源代码)

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 工厂模式

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 设计模式--简单工厂模式

    什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

  • 设计模式之工厂模式

    什么是工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式...

  • Java基础一一设计模式:工厂模式的运用

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 工厂模式

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

  • 设计模式之工厂模式(1)

    工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创...

网友评论

      本文标题:Java设计模式-工厂模式(Factory Pattern)

      本文链接:https://www.haomeiwen.com/subject/zalmgdtx.html