java工厂模式三种详解

工厂模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方式,在Java中,工厂模式主要有两种实现方式:简单工厂模式和工厂方法模式,下面将详细介绍这两种工厂模式的使用方法。

1、简单工厂模式

java工厂模式三种详解

简单工厂模式又称为静态工厂模式,它是一种创建型设计模式,提供了一种在不指定具体类的情况下创建对象的方式,在Java中,简单工厂模式主要有两种实现方式:静态方法和实例方法。

(1)静态方法

静态方法是在类级别上定义的方法,可以直接通过类名调用,在简单工厂模式中,我们可以使用静态方法来创建对象,下面是一个简单的例子:

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

在这个例子中,我们定义了一个SimpleFactory类,它有一个静态方法createProduct,该方法接受一个字符串参数type,根据type的值创建并返回相应的产品对象,如果传入的type值无效,则抛出异常。

(2)实例方法

实例方法是在类的实例上定义的方法,需要先创建类的实例才能调用,在简单工厂模式中,我们也可以使用实例方法来创建对象,下面是一个简单的例子:

java工厂模式三种详解

public class SimpleFactory {
    public Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        } else {
            throw new IllegalArgumentException("Invalid product type");
        }
    }
}

在这个例子中,我们定义了一个SimpleFactory类,它有一个实例方法createProduct,该方法接受一个字符串参数type,根据type的值创建并返回相应的产品对象,如果传入的type值无效,则抛出异常。

2、工厂方法模式

工厂方法模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的方式,在Java中,工厂方法模式主要有两种实现方式:接口和抽象类。

(1)接口

接口是一种特殊的抽象类型,它只包含抽象方法和常量,在工厂方法模式中,我们可以使用接口来定义产品的创建方法,下面是一个简单的例子:

public interface Product {
    void doSomething();
}

在这个例子中,我们定义了一个Product接口,它有一个抽象方法doSomething,接下来,我们可以为不同的产品实现这个接口:

java工厂模式三种详解

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

我们可以创建一个工厂类来根据接口创建产品对象:

public class Factory {
    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        } else {
            throw new IllegalArgumentException("Invalid product type");
        }
    }
}

在这个例子中,我们定义了一个Factory类,它有一个静态方法createProduct,该方法接受一个字符串参数type,根据type的值创建并返回相应的产品对象,如果传入的type值无效,则抛出异常。

(2)抽象类

抽象类是一种特殊的类,它不能被实例化,只能被继承,在工厂方法模式中,我们可以使用抽象类来定义产品的创建方法,下面是一个简单的例子:

public abstract class AbstractProduct {
    abstract void doSomething();
}

在这个例子中,我们定义了一个抽象类AbstractProduct,它有一个抽象方法doSomething,接下来,我们可以为不同的产品继承这个抽象类:

public class ConcreteProductA extends AbstractProduct {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductA is doing something");
    }
}
public class ConcreteProductB extends AbstractProduct {
    @Override
    public void doSomething() {
        System.out.println("ConcreteProductB is doing something");
    }
}

原创文章,作者:酷盾叔,如若转载,请注明出处:https://www.kdun.com/ask/105556.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
酷盾叔
上一篇 2023-12-20 22:33
下一篇 2023-12-20 22:38

相关推荐

  • 设计模式中的工厂模式有哪些优点?

    工厂模式的优点包括:提高代码的可维护性和可扩展性,降低耦合度,便于进行单元测试和依赖注入,实现对象的延迟创建和按需创建,以及简化对象创建过程。

    2024-11-09
    012
  • python设计模式_Python

    Python设计模式是针对Python编程语言的一套设计原则和模式,旨在提高代码的可读性、可维护性和可重用性。这些模式包括单例模式、工厂模式、观察者模式等,可以帮助开发者更好地组织和管理代码。

    2024-06-19
    051
  • 设计模式及其应用场景

    设计模式及其应用场景设计模式是软件工程中解决常见问题的一套被反复使用、多数人知晓、分类编目、代码设计经验的归纳,这些模式在软件开发中充当了一套可重用的解决方案的角色,以帮助开发者编写高内聚、低耦合、易维护、可扩展和可复用的代码,以下是一些常见设计模式及其应用场景的概述:创建型模式1、单例模式 (Singleto……

    2024-05-30
    064
  • java工厂模式有哪些类型

    Java工厂模式主要包括三种类型:简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式是最基本的形式,通过一个工厂类来创建所有需要的对象。

    2024-01-30
    093

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入