[设计模式] 简单工厂模式简易案例

工厂模式是一种创建型设计模式,用于根据不同条件或参数创建不同类型的对象。

解决的痛点:当一个类不知道它必须创建哪个对象时,工厂模式可以用来创建特定类型的对象。

以下是一个简单的工厂模式的 Java 示例,假设你要创建不同类型的形状对象。

首先,定义一个抽象形状类 Shape:

java 复制代码
public abstract class Shape {
    public abstract void draw();
}

然后,创建具体的形状类,例如 Circle 和 Rectangle:

java 复制代码
public class Circle extends Shape {
    @Override
    public void draw() {
        System.out.println("绘制圆形");
    }
}

public class Rectangle extends Shape {
    @Override
    public void draw() {
        System.out.println("绘制矩形");
    }
}

接下来,创建一个工厂类 ShapeFactory,它根据给定的条件或参数来创建不同类型的形状对象:

java 复制代码
public class ShapeFactory {
    // 根据类型参数创建相应的形状对象
    public Shape createShape(String type) {
        if (type.equalsIgnoreCase("circle")) {
            return new Circle();
        } else if (type.equalsIgnoreCase("rectangle")) {
            return new Rectangle();
        } else {
            return null; // 可以根据需要返回默认对象或抛出异常
        }
    }
}

最后,你可以使用工厂类来创建不同类型的形状对象:

java 复制代码
public class Main {
    public static void main(String[] args) {
        ShapeFactory factory = new ShapeFactory();

        // 创建圆形对象
        Shape circle = factory.createShape("circle");
        circle.draw(); // 输出:绘制圆形

        // 创建矩形对象
        Shape rectangle = factory.createShape("rectangle");
        rectangle.draw(); // 输出:绘制矩形
    }
}

这个示例演示了一个简单的工厂模式,根据输入的类型参数创建不同的形状对象。工厂模式的主要好处是将对象的创建和使用分离,使代码更易于扩展和维护。如果需要添加新的形状类型,只需修改工厂类而不必修改使用该形状的代码。

相关推荐
ximu_polaris21 小时前
设计模式(c++)-结构型模式-装饰器模式
c++·设计模式·装饰器模式
云烟成雨TD21 小时前
Spring AI Alibaba 1.x 系列【33】Human-in-the-Loop(人在回路)演示
java·人工智能·spring
難釋懷21 小时前
Redis服务器端优化-内存划分和内存配置
java·redis·spring
两年半的个人练习生^_^21 小时前
每日一学:设计模式之适配器模式
java·设计模式·适配器模式
程序员老邢21 小时前
【技术底稿 18】FTP 文件处理 + LibreOffice Word 转 PDF 在线预览 + 集群乱码终极排查全记录
java·经验分享·后端·pdf·word·springboot
磊 子21 小时前
类模板与派生1
java·开发语言·c++
:12121 小时前
java面试基础2
java·开发语言·面试
云烟成雨TD21 小时前
Spring AI Alibaba 1.x 系列【30】Nacos Skill Registry 的底层设计与实现
java·人工智能·spring
北辰屿风21 小时前
宝塔部署tomcat项目,nginx负载均衡代理访问报错404问题
java·tomcat
鱼鳞_21 小时前
Java学习笔记_Day37(网络编程)
java·网络·笔记·学习