设计模式-创建型模式-简单工厂模式

0 引言

简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。

1 简单工厂模式代码

复制代码
首先,我们定义一个接口Animal:
public interface Animal {
    void speak();
}

然后,我们创建两个实现了Animal接口的类Dog和Cat:
public class Dog implements Animal {
    @Override
    public void speak() {
        System.out.println("Woof!");
    }
}

public class Cat implements Animal {
    @Override
    public void speak() {
        System.out.println("Meow!");
    }
}

接下来,我们创建一个名为AnimalFactory的工厂类,它可以根据传入的参数来创建并返回相应的动物对象:
public class AnimalFactory {
    public Animal createAnimal(String type) {
        if (type == null) {
            return null;
        }
        if (type.equalsIgnoreCase("DOG")) {
            return new Dog();
        } else if (type.equalsIgnoreCase("CAT")) {
            return new Cat();
        }
        return null;
    }
}
最后,我们在main方法中使用AnimalFactory来创建动物对象,并调用它们的speak方法:
public class Main {
    public static void main(String[] args) {
        AnimalFactory factory = new AnimalFactory();

        Animal dog = factory.createAnimal("DOG");
        if (dog != null) {
            dog.speak();
        }

        Animal cat = factory.createAnimal("CAT");
        if (cat != null) {
            cat.speak();
        }
    }
}
相关推荐
俄城杜小帅5 分钟前
C++线程异步和wpf中比较
java·c++·wpf
umeelove356 分钟前
Springboot的jak安装与配置教程
java·spring boot·后端
The_Ticker6 分钟前
日股实时行情接口使用指南
java·经验分享·笔记·python·算法·区块链
啥咕啦呛6 分钟前
java打卡学习2:Stream高级与Optional
java·windows·学习
技术人生黄勇7 分钟前
Google 开源实战指南:21种AI智能体设计模式,覆盖从基础到安全的完整体系
人工智能·设计模式
试试勇气7 分钟前
Linux学习笔记(十九)--生产消费模型与线程安全
java·笔记·学习
凌波粒7 分钟前
LeetCode--24.两两交换链表中的节点(链表)
java·算法·leetcode·链表
pupudawang11 分钟前
Spring Boot 各种事务操作实战(自动回滚、手动回滚、部分回滚)
java·数据库·spring boot
C++chaofan13 分钟前
RPC框架SPI机制深度解析
java·网络·后端·网络协议·rpc·spi·序列化器
名字忘了取了14 分钟前
线程池-submit 与 execute
java