软件工厂方法模式

工厂方法模式

意图:定义一个用于创建对象的接口,但让子类决定将哪一个类实例化。

例子:一个日志记录器工厂,可以创建文件日志记录器或数据库日志记录器。

以下是一个工厂方法模式的 Java 实现示例,模拟日志记录器的创建场景(支持文件日志和数据库日志):

java 复制代码
// 1. 定义日志记录器接口(抽象产品)
interface Logger {
    void log(String message);
}

// 2. 实现具体的日志记录器(具体产品)
class FileLogger implements Logger {
    @Override
    public void log(String message) {
        System.out.println("文件日志记录: " + message);
    }
}

class DatabaseLogger implements Logger {
    @Override
    public void log(String message) {
        System.out.println("数据库日志记录: " + message);
    }
}

// 3. 定义日志记录器工厂接口(抽象工厂)
interface LoggerFactory {
    Logger createLogger();
}

// 4. 实现具体的工厂类(具体工厂)
class FileLoggerFactory implements LoggerFactory {
    @Override
    public Logger createLogger() {
        return new FileLogger();
    }
}

class DatabaseLoggerFactory implements LoggerFactory {
    @Override
    public Logger createLogger() {
        return new DatabaseLogger();
    }
}

// 5. 客户端代码
public class FactoryMethodDemo {
    public static void main(String[] args) {
        // 使用文件日志工厂
        LoggerFactory fileLoggerFactory = new FileLoggerFactory();
        Logger fileLogger = fileLoggerFactory.createLogger();
        fileLogger.log("这是一条文件日志");

        // 使用数据库日志工厂
        LoggerFactory dbLoggerFactory = new DatabaseLoggerFactory();
        Logger dbLogger = dbLoggerFactory.createLogger();
        dbLogger.log("这是一条数据库日志");
    }
}
相关推荐
具身智能进化论1 天前
具身智能率先进入汽车工厂,产业价值将从哪些场景显现?
大数据·人工智能·机器人·自动化·工厂方法模式
具身智能进化论2 天前
国产协作机器人品牌如何选择,企业长期使用更看重什么
大数据·人工智能·机器人·工厂方法模式
具身智能进化论4 天前
协作机器人产业进入规模化部署期,未来几年的增长从何而来
大数据·运维·人工智能·机器人·自动化·工厂方法模式
AI人工智能+电脑小能手5 天前
大白话说Java设计模式-04-工厂方法模式(业务实战篇)
java·设计模式·工厂方法模式·架构设计·代码解耦
莫得感情 o11 天前
设计模式 03 · 工厂方法模式
设计模式·工厂方法模式
choumin19 天前
创建型模式——工厂方法模式
c++·设计模式·工厂方法模式·创建型模式
geovindu1 个月前
java: Factory Method Pattern
java·开发语言·后端·设计模式·工厂方法模式·创建型模式
王_teacher2 个月前
23种设计模式之工厂模式
设计模式·软件工程·简单工厂模式·工厂方法模式·抽象工厂模式
计算机安禾3 个月前
【c++面向对象编程】第39篇:简单工厂模式与工厂方法模式:C++实现
c++·简单工厂模式·工厂方法模式
多加点辣也没关系3 个月前
设计模式-工厂方法模式
设计模式·工厂方法模式