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

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();
        }
    }
}
相关推荐
日月云棠4 小时前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840825 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide6 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家6 小时前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺6 小时前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602736 小时前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程7 小时前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
程序员清风11 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试
beata12 小时前
Java基础-13: Java反射机制详解:原理、使用与实战示例
java·后端
用户03321266636712 小时前
Java 使用 Spire.Presentation 在 PowerPoint 中添加或删除表格行与列
java