【导读:数据是二十一世纪的石油,蕴含巨大价值,这是·情报通·大数据技术系列第[93]篇文章,欢迎阅读和收藏】
1 基本概念
Scala 比 Java 更为面向对象的特点之一是 Scala 不能定义静态成员,而是定义单例对象 (singleton object) 。除了用 object 关键字替换 class 关键字以外,单例对象的定义基本与类定义一致。
2 术语解释
单例对象:对于 Java 程序员来说,可以把单例对象当作是 Java 中可能会用到的静态方法工具类。也可以用类似的语法做方法调用:单例对象类 . 方法名。
3 详细说明
Scala 不能定义静态成员,而是代之定义单例对象 (singleton object) 。以 object 关键字定义。
对象定义了某个类的单个实例,包含了你想要的特性:
当你在应用程序中需要一个新的唯一账号时,调用 Account.newUniqueNumber() 即可。
对象的构造器在该对象第一次被使用时调用。
在下面几个场景下可以使用 Scala 单例对象:
- 作为存放工具函数或常量的地方
- 高效地共享单个不可变实例
- 需要使用单个实例来协调某个服务时
类和单例对象间的差别是,单例对象不带参数,而类可以。因为单例对象不是用 new 关键字实例化的,所以没机会传递给它实例化参数。每个单例对象都被实现为虚拟类 (synthetic class) 的实例,并指向静态的变量,因为它们与 Java 静态类有相同的初始化语义。
领取专属 10元无门槛券
私享最新 技术干货