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

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();
        }
    }
}
相关推荐
一 乐16 分钟前
家政服务管理系统|基于springboot + vue家政服务管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·家政服务管理系统
碳基硅坊1 小时前
Spring AI:把大模型接进 Spring 应用
java·人工智能·spring ai
黄毛火烧雪下1 小时前
Java 核心知识点总结(一)
java·开发语言
技术小结-李爽2 小时前
【工具】Maven的下载、安装、使用
java·maven
极创信息2 小时前
Linux挖矿病毒深度清理实战教程,从进程隐藏、Rootkit驻留到彻底根除
java·大数据·linux·运维·安全·tomcat·健康医疗
努力成为AK大王2 小时前
并发编程的核心挑战、优化方案与核心知识点总结
java·开发语言·数据库
云烟成雨TD2 小时前
Agent Scope Java 2.x 系列【10】技能(Skill)
java·人工智能·agent
摇滚侠2 小时前
SpringMVC 入门到实战 DispatcherServlet 源码解读 92-95
java·后端·spring·maven·intellij-idea
YXLY25283 小时前
庭院大门选型方案:铝艺大门的五大设计模式与六大性能优势分析
设计模式
键盘歌唱家3 小时前
Spring AI 入门分享:它和“直接调 API“到底差在哪
java·人工智能·spring