java设计模式之工厂模式

简单分享下java中设计模式--工厂模式

工厂模式(Factory Pattern)是面向对象编程中常用的设计模式之一,它属于创建型模式。工厂模式的主要目的是使用工厂方法来创建对象,而不是直接使用 new 关键字实例化对象。这样可以提高程序的扩展性和维护性。

以下是Java中简单工厂模式的案例代码:

首先,我们定义一个产品接口和几个具体产品类:

java 复制代码
// 产品接口
interface Product {
    void use();
}

// 具体产品类A
class ConcreteProductA implements Product {
    public void use() {
        System.out.println("Using ConcreteProductA");
    }`在这里插入代码片`
}

// 具体产品类B
class ConcreteProductB implements Product {
    public void use() {
        System.out.println("Using ConcreteProductB");
    }
}

然后,我们创建一个工厂类,用于生成具体的产品实例:

java 复制代码
```java

```java
// 工厂类
class ProductFactory {
    // 工厂方法,根据传入的参数决定生成哪种产品实例
    public Product createProduct(String choice) {
        if (choice == null) {
            return null;
        }
        if (choice.equalsIgnoreCase("A")) {
            return new ConcreteProductA();
        } else if (choice.equalsIgnoreCase("B")) {
            return new ConcreteProductB();
        }
        return null;
    }
}

最后,我们使用工厂类来创建对象,并使用这些对象:

java 复制代码
```java
public class FactoryPatternDemo {
    public static void main(String[] args) {
        // 创建工厂对象
        ProductFactory factory = new ProductFactory();

        // 使用工厂对象创建产品A
        Product productA = factory.createProduct("A");
        productA.use();

        // 使用工厂对象创建产品B
        Product productB = factory.createProduct("B");
        productB.use();
    }
}

在这个例子中,Product是一个接口,ConcreteProductA和ConcreteProductB是实现了Product接口的具体产品类。ProductFactory是一个工厂类,它包含一个createProduct方法,根据传入的参数来决定创建哪种产品实例。在FactoryPatternDemo的main方法中,我们创建了一个ProductFactory对象,并使用它来创建ConcreteProductA和ConcreteProductB的实例,然后调用它们的use方法。

工厂模式隐藏了对象创建的复杂性,使得在不知道具体实现的情况下也能创建和使用对象。这有助于降低客户代码与具体产品代码之间的耦合度。``

完结,撒花!求赞求关注! 有问题可威:c_-j_-c

相关推荐
工程师老罗1 小时前
Image(图像)的用法
java·前端·javascript
leo_messi941 小时前
2026版商城项目(一)
java·elasticsearch·k8s·springcloud
美味蛋炒饭.1 小时前
Tomcat 超详细入门教程(安装 + 目录 + 配置 + 部署 + 排错)
java·tomcat
dreamxian2 小时前
苍穹外卖day11
java·spring boot·后端·spring·mybatis
Veggie262 小时前
【Java深度学习】PyTorch On Java 系列课程 第八章 17 :模型评估【AI Infra 3.0】[PyTorch Java 硕士研一课程]
java·人工智能·深度学习
weisian1512 小时前
Java并发编程--19-ThreadPoolExecutor七参数详解:拒绝Executors,手动掌控线程池
java·线程池·threadpool·七大参数
csdn5659738502 小时前
Java打包时,本地仓库有jar 包,Maven打包却还去远程拉取
java·maven·jar
Demon_Hao2 小时前
JAVA通过Redis实现Key分区分片聚合点赞、收藏等计数同步数据库,并且通过布隆过滤器防重复点赞
java·数据库·redis
华科易迅3 小时前
Spring装配对象方法-注解
java·后端·spring
庄周的大鱼3 小时前
分析@TransactionalEventListener注解失效
java·spring·springboot·事务监听器·spring 事件机制·事务注解失效解决