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() }
相关文章推荐
- hdu 2243 AC自动机 + 矩阵快速幂
- ibatis 入门教程
- STL学习笔记(二)
- java面试基础120题及答案(无编程题)
- Unity-Tween
- 我的游戏开发笔记(五):Animator的运用二
- CodeForces 560B Gerald is into Art
- iOS多线程与网络开发之小文件上传
- LightOJ1002
- jquery源码阅读之jquery.extend
- 课堂随笔05--冒泡排序
- LightOJ1002 分类: 比赛 最短路 2015-08-08 15:57 15人阅读 评论(0) 收藏
- Java实现排序算法之归并排序
- 字体加粗
- Unity3D试题
- org.dom4j.DocumentException unknown protocol h
- 函数包装器
- HTTP请求:GET与POST方法的区别
- TortoiseSVN新建和合并分支图文教程
- Tapestry4.1.2 入门教程