通过类的构造方法私有化,再在其伴生对象中定义获取对象实例的唯一方法来实现
object Singleton {
def main(args: Array[String]): Unit = {
val student = Student4.getInstance()
val student2 = Student4.getInstance()
student.printInfo()
println(student)
println(student2)
}
}
class Student4 private(var name: String = "小明", var age: Int = 23) {
def printInfo(): Unit = {
println(s"student3: SCHOOL = ${Student3.school} NAME = $name AGE= $age")
}
}
object Student4 {
private var student: Student4 = _
def getInstance(): Student4 = {
if (student == null) {
student = new Student4("alice", 23)
}
student
}
}