Scala 特性:Traits 与模块化编程
1. Ordered 特性与比较类
在实现一个可通过某种比较方式排序的类时,可以考虑混入 Ordered 特性。混入该特性后,类的使用者将能使用丰富的比较方法。不过,需要注意的是, Ordered 特性不会为你定义 equals 方法,因为它无法做到这一点。实现 equals 方法需要检查传入对象的类型,但由于类型擦除, Ordered 本身无法进行此检查。所以,即便继承了 Ordered ,你也需要自己定义 equals 方法。
2. Traits 作为可堆叠的修改器
Traits 有两大主要用途,一是将薄接口转化为丰富接口,二是为类提供可堆叠的修改功能。Traits 能修改类的方法,并且可以相互堆叠这些修改。
以整数队列为例,队列有两个操作: put 用于将整数放入队列, get 用于取出整数。队列遵循先进先出原则, get 方法应按放入顺序返回整数。
针对实现此队列的类,可以定义以下修改特性:
- Doubling :将放入队列的所有整数翻倍。
- Incrementing :将放入队列的所有整数加 1。
- Filtering :过滤掉队列中的负数
超级会员免费看
订阅专栏 解锁全文
126

被折叠的 条评论
为什么被折叠?



