Scala单利模式

半兽人 发表于: 2017-09-01   最后更新时间: 2017-09-01 15:12:18  
{{totalSubscript}} 订阅, 3,950 游览

单例模式

Scala没有静态方法或静态字段,你可以用object这个语法结构来达到同样的目的。对象定义了某个类的单个实例,包括你想要的特性。例如:

object Account {
  private var lastNumber = 0;

    def newUniqueNumber() = {
    lastNumber += 1; lastNumber
  }
}

当你在应用程序中需要一个新的唯一账号时,调用Accounut.newUniqueNumber()即可。

对象的构造器在该对象第一次被使用时调用。在本例中,Accounts的构造器在Accounts.newUniqueNumber()的首次调用时执行。如果一个对象从未被使用,那么其构造器也不会被执行。

对象本质上可以拥有类的所有特性 ---- 它甚至可以扩展其他类或特质。只有一个例外:你不能提供构造器参数。

对于JAVA或C++中会适用单例对象的地方,在Scala中都可以用对象来实现:

  • 作为存放工具函数或常量
  • 高效低共享单个不可变实例
  • 需要用单个实例来协调某个服务时
更新于 2017-09-01

查看scala更多相关的文章或提一个关于scala的问题,也可以与我们一起分享文章