1. 程式人生 > >工廠三兄弟之工廠方法模式(三):日誌記錄器的工廠方法模式解決方案

工廠三兄弟之工廠方法模式(三):日誌記錄器的工廠方法模式解決方案

3 完整解決方案

Sunny公司開發人員決定使用工廠方法模式來設計日誌記錄器,其基本結構如圖3所示:
這裡寫圖片描述

在圖3中,Logger介面充當抽象產品,其子類FileLogger和DatabaseLogger充當具體產品,LoggerFactory介面充當抽象工廠,其子類FileLoggerFactory和DatabaseLoggerFactory充當具體工廠。完整程式碼如下所示:

//日誌記錄器介面:抽象產品
interface Logger {
    public void writeLog();
}

//資料庫日誌記錄器:具體產品
class DatabaseLogger implements
Logger {
public void writeLog() { System.out.println("資料庫日誌記錄。"); } } //檔案日誌記錄器:具體產品 class FileLogger implements Logger { public void writeLog() { System.out.println("檔案日誌記錄。"); } } //日誌記錄器工廠介面:抽象工廠 interface LoggerFactory { public Logger createLogger(); } //資料庫日誌記錄器工廠類:具體工廠
class DatabaseLoggerFactory implements LoggerFactory { public Logger createLogger() { //連線資料庫,程式碼省略 //建立資料庫日誌記錄器物件 Logger logger = new DatabaseLogger(); //初始化資料庫日誌記錄器,程式碼省略 return logger; } } //檔案日誌記錄器工廠類:具體工廠 class FileLoggerFactory implements
LoggerFactory {
public Logger createLogger() { //建立檔案日誌記錄器物件 Logger logger = new FileLogger(); //建立檔案,程式碼省略 return logger; } }

編寫如下客戶端測試程式碼:

class Client {
    public static void main(String args[]) {
        LoggerFactory factory;
        Logger logger;
        factory = new FileLoggerFactory(); //可引入配置檔案實現
        logger = factory.createLogger();
        logger.writeLog();
    }
}

編譯並執行程式,輸出結果如下:

檔案日誌記錄。