黑猴子的家:Scala 单例对象

单例,必须用伴生对象来实现

1、JDBCUtil

Scala中没有静态方法和静态字段,可以用object这个语法结构来达到同样的目的

class JDBCUtil private (){

}
//懒汉模式
object JDBCUtil{

  var instance:JDBCUtil = _

  def apply(): JDBCUtil = {
    if (instance == null){
      instance = new JDBCUtil()
    }
    instance
  }
}

尖叫提示:JDBCUtil类的主构造器设置为私有的,只能JDBCUtil的伴生对象能直接访问,伴生对象的名字必须和类的名字一样,才是类的伴生对象

apply的括号是不要省略的,如果省略,调用的时候,也必须省略,它用来标识调用的是哪个apply构造器,除了apply和unapply ,其他的函数括号是可以省略的,比如 getClass() ->getClass

2、JDBCUtilMain

object JDBCUtilMain {
  def main(args: Array[String]): Unit = {
    val jdbcUtil1 = JDBCUtil()
    val jdbcUtil2 = JDBCUtil()

    println(jdbcUtil1)
    println(jdbcUtil2)
  }
}

尖叫提示:对象的构造器在该对象第一次使用时,被调用。如果对象没有使用过,他的构造器也不会被执行,对象基本具有类的所有特性,甚至可以扩展,只有一个例外,不能设置构造器的参数。

转载于:https://www.jianshu.com/p/64a3cf3c276c

猜你喜欢

转载自blog.csdn.net/weixin_33828101/article/details/91182479