您的位置:首页 > 大数据

大数据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 = {

   

  }

}

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐