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

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();
        }
    }
}
相关推荐
W***r2614 小时前
Tomcat10下载安装教程
java
霸道流氓气质14 小时前
SpringBoot添加JSP支持
java·spring boot·后端
guslegend14 小时前
第1章:Mysql数据库架构演变历史
java
双木的木14 小时前
Coggle数据科学 | 并行智能体:洞察复杂系统的 14 种并发设计模式
运维·人工智能·python·设计模式·chatgpt·自动化·音视频
烤麻辣烫14 小时前
黑马程序员苍穹外卖(新手)DAY10
java·开发语言·学习·spring·intellij-idea
q***735514 小时前
Spring Boot应用关闭分析
java·spring boot·后端
u***451614 小时前
Spring Boot中的404错误:原因、影响及处理策略
java·spring boot·后端
p***629914 小时前
mysql-connector-java 和 mysql-connector-j的区别
android·java·mysql
程序员三明治14 小时前
【Java】synchronized关键字详解:从字节码到对象头与锁升级
java·开发语言·juc·synchronized··锁升级
k***38814 小时前
Spring Boot项目集成Redisson 原始依赖与 Spring Boot Starter 的流程
java·spring boot·后端