scala实现设计模式之工厂方法模式

package com.linewell.modeldesgin.factorymethod

/**  * Created by ctao on 2015/8/4.  * 工厂方法模式  */  /**  * 日志工厂特质  */ trait LoggerFactory {
    /**  * 创建日志方法  * @return 日志  */  def createLogger():Logger
}

/**  * 日志特质  */ trait Logger{
    /**  * 写日志方法  */  def writeLog():Unit
}

/**  * 数据库日志,继承日志特质  */ class DatabaseLogger extends Logger{
    override def writeLog(): Unit = println("数据库日志记录")
}

/**  * 文件日志,继承日志特质  */ class FileLogger extends Logger{
    override def writeLog(): Unit = println("文件日志记录")
}

/**  * 数据库日志工厂方法  */ object DatabaseLoggerFactory extends LoggerFactory{
    override def createLogger(): Logger = new DatabaseLogger
}

/**  * 文件日志方法  */ object FileLoggerFactory extends LoggerFactory{
    override def createLogger(): Logger = new FileLogger
}
package com.linewell.modeldesgin.factorymethod

/**  * Created by ctao on 2015/8/4.  * 测试客户端  */ object Client extends App{
    /**  * 日志工厂1  */  val Logger1:LoggerFactory = DatabaseLoggerFactory
    /**  * 日志工厂2  */  val Logger2:LoggerFactory = FileLoggerFactory
    Logger1.createLogger().writeLog()
    Logger2.createLogger().writeLog()
}

你可能感兴趣的:(scala实现设计模式之工厂方法模式)