54.scala编程思想笔记——使用特征

81 阅读1分钟

54.scala编程思想笔记——使用特征

欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…
源码下载连接请见第一篇笔记。\

在Scala中,可以将模型划分为恰当的部分。而有些语言则强制进行笨拙的抽象。

         特征以及他们的混合是这些工具中最强大的,特征不仅使得语法变得优雅而有意义,并且可以防止代码重复。

         因此:

n  优先是使用特征而不是更具体的类型

n  将模型划分成相互独立的部分

n  延迟具体化

特征和抽象类的主要差别是特征不能有构造器参数。

例如:

importcom.atomicscala.AtomicTest._

 

traitAerobic {

  val age:Int

  def minAerobic = .5 * (220 - age)

  def isAerobic(heartRate:Int) =

    heartRate >= minAerobic

}

 

traitActivity {

  val action:String

  def go:String

}

 

classPerson(val age:Int)

 

classExerciser(age:Int,

  val action:String = "Running",

  val go:String = "Run!") extends

  Person(age) with Activity with Aerobic

 

val bob =new Exerciser(44)

bob.isAerobic(180)is true

bob.isAerobic(80)is false

bob.minAerobicis 88.0