大数据Spark “蘑菇云”行动前传Scala专家之路第27课:Scala的中面向对象实现的惊人内幕解密
2016-08-18 21:41
537 查看
大数据Spark “蘑菇云”行动前传Scala专家之路第27课:Scala面向对象内幕实践解密
1 Scala的APP解密
2 Scala面向对象实战解密
package com.dt.spark.scala.bascis
trait _Logger{
def log(msg:String):Unit={
println("Log: "+msg)
}
}
trait RemoteLogger extends _Logger{
override def log(msg:String):Unit={
println("RemoteLogger: "+msg)
}
}
trait NullLogger extends _Logger{
override def log(msg:String):Unit={ }
}
/*trait Data {
val logger =new _Logger{}
def query(input:String):String= {
logger.log(input)
"Result"+ input
}
}*/
trait DataAcess {
//val logger =new _Logger{}
def query(input:String):String= {
// logger.log(input)
"Result"+ input
}
}
/*trait DataAcessWithLogger {
val logger =new _Logger{}
val data =new DataAcess{}
def query(input:String):String= {
logger.log(input)
data.query(input)
}
}*/
/*trait DataAcessWithLogger extends DataAcess with _Logger {
//val logger =new _Logger{}
// val data =new DataAcess{}
override def query(input:String):String= {
log(input)
super.query(input)
}
}*/
trait _LoggerManger{
val logger:_Logger =new _Logger{}
}
trait RemoteLoggerManger extends _LoggerManger{
override val logger:_Logger =new RemoteLogger{}
}
trait NullLoggerManger extends _LoggerManger{
override val logger:_Logger =new NullLogger{}
}
/*trait DataAcessDAO extends _Logger {
//val logger =new _Logger{}
// val data =new DataAcess{}
def query(input:String):String= {
log(input)
"DataAcessDAO Result"
// super.query(input)
}
}*/
trait DataAcessDAO extends _LoggerManger {
//val logger =new _Logger{}
// val data =new DataAcess{}
def query(input:String):String= {
logger.log(input)
"DataAcessDAO Result"
// super.query(input)
}
}
object OOPAdvanced {
def main(args: Array[String]): Unit = {
}
}
相关文章推荐
- 大数据Spark “蘑菇云”行动前传Scala专家之路第28课:Scala隐式转换内幕实践解密
- 大数据Spark “蘑菇云”行动前传Scala专家之路第26课:Scala的核心力量和黄金定律
- 大数据Spark “蘑菇云”行动前传第13课Scala模式匹配实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第10课:Scala继承彻底实战和Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动前传第3课:在IDE下开发第一个Scala程序透彻解析及Scala控制结构详解实战
- 大数据Spark “蘑菇云”行动前传第19课:Scala的包、继承覆写及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动第48课程 Spark 2.0内幕深度解密和学习最佳实践
- 大数据Spark “蘑菇云”行动前传第14课Scala集合上的函数式编程实战及Spark源码鉴赏
- 大数据spark 蘑菇云行动前传 第1课:大数据时代的黄金语言scala
- 大数据Spark “蘑菇云”行动第107课:Hive源码大师之路第五步:Hive中一切Operator皆是函数的内幕及Hive中Optimizer优化
- 大数据Spark “蘑菇云”行动前传第23课:Scala外部命令和正则表达式及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第16课:Scala implicits编程彻底实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第4课:零基础彻底实战Scala控制结构及Spark源码解析
- 大数据Spark “蘑菇云”行动前传第7课:零基础实战Scala面向对象编程及Spark源码解析
- 大数据Spark“蘑菇云”行动-第11课:Scala面向接口彻底实战和Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴赏大数据Spark “蘑菇云”行动前传第20课:Scala提取器、注解深度实战详解及Spark源码鉴
- 大数据Spark “蘑菇云”行动前传18课:Scala偏函数、异常、Lazy值编码实战及Spark源码鉴赏
- 大数据Spark “蘑菇云”行动前传第22课:Scala集合和高级函数操作实战及Spark源码鉴赏.
- 大数据Spark “蘑菇云”行动第105课:Hive源码大师之路第三步:Hive序列化与反序列原理内幕和源码解析