Scala开发教程(51): Trait用来实现可叠加的修改操作

jerry Scala 2015年11月25日 收藏

我们已经看到Trait的一个主要用法,将一个瘦接口变成胖接口,本篇我们介绍Trait的另外一个重要用法,为类添加一些可以叠加的修改操作。Trait能够修改类的方法,并且能够通过叠加这些操作(不同组合)修改类的方法。
我们来看这样一个例子,修改一个整数队列,这个队列有两个方法:put 为队列添加一个元素,get 从队列读取一个元素。队列是先进先出,因此get读取的顺序和put的顺序是一致的。
对于上面的队列,我们定义如下三个Trait类型:

  • Doubling : 队列中所有元素X2
  • Incrementing: 队列中所有元素递增
  • Filtering: 过滤到队列中所有负数。