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

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();
        }
    }
}
相关推荐
zyseo811 分钟前
谷歌SEO 内容更新焕新流程:让老页面重新起量
java·前端·javascript
萧瑟余晖21 分钟前
Spring Data JDBC与R2DBC详解
java·后端·spring
杰克尼22 分钟前
今日面试题总结
java·开发语言·人工智能·langchain
估值探索者1 小时前
【Python量化组合管理实战 02】钱该怎么分?等权、波动率倒数与动态评分三种配权实测
java·开发语言·python·接口·股票数据api接口
Wang's Blog1 小时前
Java 项目实战:交友项目环信云通信全解——体系集成、执行链路与 REST API 实战
java·spring·交友
god_cvz1 小时前
第三章:12、经验沉淀与自优化
java·ai
小冯不疯1 小时前
查询旺店通货品策略实战教程:从源系统拉取到轻易云的端到端落地
java·大数据·数据库
SunnyDays10111 小时前
Java 实现 Excel 与 Markdown 相互转换:表格导出、格式设置与多表提取
java·excel转markdown·markdown转excel
zjx23881 小时前
java很老的web工程重构,加入详细异常链信息分析
java·重构
山东孙燕姿2 小时前
设备台账重构:从一张表到三层模型
android·java·网络·低代码·重构·rxjava