软件工厂方法模式

工厂方法模式

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

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

以下是一个工厂方法模式的 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("这是一条数据库日志");
    }
}
相关推荐
砍光二叉树21 小时前
【设计模式】创建型-工厂方法模式
设计模式·工厂方法模式
易水寒陈7 天前
单片机的工厂方法模式和桥接模式结合使用
单片机·桥接模式·工厂方法模式
夕珩7 天前
单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式、解释器模式、命令模式
单例模式·解释器模式·建造者模式·工厂方法模式·抽象工厂模式·命令模式·原型模式
蜜獾云9 天前
设计模式之工厂方法模式(5):稍微复杂一点的工厂模式
java·设计模式·工厂方法模式
BD_Marathon23 天前
工厂方法模式
android·java·工厂方法模式
青春易逝丶23 天前
工厂方法模式
工厂方法模式
逆境不可逃1 个月前
【从零入门23种设计模式01】创建型之工厂模式(简单工厂+工厂方法+抽象工厂)
java·spring·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式·工厂模式
Remember_9932 个月前
Java 工厂方法模式:解耦对象创建的优雅方案
java·开发语言·python·算法·工厂方法模式
她和夏天一样热2 个月前
【设计模式】工厂方法模式在开发中的真实应用
设计模式·工厂方法模式
进击的小头2 个月前
创建型模式:工厂方法模式(C语言实现)
c语言·工厂方法模式