软件工厂方法模式

工厂方法模式

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

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

以下是一个工厂方法模式的 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("这是一条数据库日志");
    }
}
相关推荐
妙蛙种子3114 天前
【Java设计模式 | 创建者模式】工厂方法模式
java·后端·设计模式·工厂方法模式
yaaakaaang8 天前
二、工厂方法模式
java·工厂方法模式
无籽西瓜a10 天前
【西瓜带你学设计模式 | 第三期-工厂方法模式】工厂方法模式——定义、实现方式、优缺点与适用场景以及注意事项
java·后端·设计模式·工厂方法模式
不秃不少年10 天前
工厂方法模式(Factory Method)
java·面试·工厂方法模式
bmseven15 天前
23种设计模式 - 工厂方法(Factory Method)
设计模式·工厂方法模式
砍光二叉树21 天前
【设计模式】创建型-工厂方法模式
设计模式·工厂方法模式
易水寒陈1 个月前
单片机的工厂方法模式和桥接模式结合使用
单片机·桥接模式·工厂方法模式
夕珩1 个月前
单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式、解释器模式、命令模式
单例模式·解释器模式·建造者模式·工厂方法模式·抽象工厂模式·命令模式·原型模式
蜜獾云1 个月前
设计模式之工厂方法模式(5):稍微复杂一点的工厂模式
java·设计模式·工厂方法模式
BD_Marathon1 个月前
工厂方法模式
android·java·工厂方法模式