您的位置:首页 > 其它

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

2015-08-08 15:59 344 查看
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()
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: