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

jerry Scala
我们已经看到Trait的一个主要用法,将一个瘦接口变成胖接口,本篇我们介绍Trait的另外一个重要用法,为类添加一些可以叠加的修改操作。Trait能够修改类的方法,并且能够通过叠加这些操作(不同组合)修改类的方法。

Scala开发教程(50): Ordered Trait

jerry Scala
比较对象也是胖接口来的比较方便的一个应用领域,当你需要比较两个有顺序关系的对象时,如果只需要一个方法就可以知道需要比较的结果就非常便利。比如,你需要“小于”关系,你希望使用“< ?比较就可以了,如果是

Scala开发教程(49): Trait示例-Rectangular 对象

jerry Scala
在设计绘图程序库时常常需要定义一些具有矩形形状的类型:比如窗口,bitmap图像,矩形选取框等。为了方便使用这些矩形对象,函数库对象类提供了查询对象宽度和长度的方法(比如width,height)和坐标的left,right,top

Scala开发教程(48): 选择瘦接口还是胖接口设计

jerry Scala
Trait的一种主要应用方式是可以根据类已有的方法自动为类添加方法。也就是说,Trait可以使得一个瘦接口变得丰满些,把它变成胖接口。 选择瘦接口还是胖接口的体现了面向对象设计中常会面临的在实现者与接口用户之间

Scala开发教程(47): Trait的基本概念

jerry Scala
在Scala中Trait为重用代码的一个基本单位。一个Traits封装了方法和变量,和Interface相比,它的方法可以有实现,这一点有点和抽象类定义类似。但和类继承不同的是,Scala中类继承为单一继承,也就是说子类只能有一个

Scala开发教程(46): 所有类的公共子类?底层类型

jerry Scala
Scala开发教程(46): 所有类的公共子类?底层类型
前面我们给出了Scala的类的一个关系图: 在这张图的最下方我们可以看到有两个类,scala.Null和scala.Nothing. 这两个类的作用是Scala支持统一方式用来处理面向对象的一些边角情况。因为它们在类层次图的下方,因此也

Scala开发教程(45): Scala基本数据类型的实现方法

jerry Scala
Scala的基本数据类型是如何实现的?实际上,Scala以与Java同样的方式存储整数:把它当作32位的字类型。这对于有效使用JVM平台和与Java库的互操作性方面来说都很重要,。标准的操作如加法或乘法都被实现为数据类型基

Scala开发教程(44): Scala的类层次关系

jerry Scala
Scala开发教程(44): Scala的类层次关系
前面我们介绍了Scala的类的继承,本篇我们介绍Scala语言自身定义的类的层次关系,在Scala中,所有的类都有一个公共的基类称为Any,此外还定义了所有类的子类Nothing,下面的图给出的Scala定义的类层次关系的一个概要

Scala开发教程(42): 组合和继承–定义heighten和widen函数

jerry Scala
我们还需要最后一个改进,之前的Element实现不够完善,只支持同样高度和同样宽度的Element使用above和beside函数,比如下面的代码将无法正常工作,因为组合元素的第二行比第一行要长: new ArrayElement(Array("he

Scala开发教程(41): 组合和继承–定义factory对象

jerry Scala
到目前为止,我们定义了关于布局元素类的一个层次结构。你可以把包含这个层次关系的类作为API接口提供给其它应用,但有时你可以希望对函数库的用户隐藏这种层次关系,这通常可以使用factory(构造工厂)对象来实现。