Scala中使用单例模式时,除了定义的类之外,还要定义一个同名的Object对象,它和类的区别是,Object对象不能带参数。
- 无参数的单例模式
//定义一个类
class Demo() {
def info():Unit={
println("this is is a no param single object")
}
}
//定义一个与类同名的对象,从这里生成类的对象
object Demo {
private val demo = new Demo
def getDemo():Demo={
demo
}
}
//测试类,重复打印五次获得的对象,看看对象地址是否一致
object Test{
def main(args:Array[String]):Unit={
for (i <- 0 to 5){
println(Demo.getDemo())
}
}
}
- 带参数的单例模式
//定义一个类
class Demo2(name:String) {
def info():Unit={
println("my name is "+name)
}
}
//定义一个与类同名的对象,从这里生成类的对象
object Demo2 {
private var demo : Demo2 = _
def getDemo2(name:String):Demo2={
if(demo==null){
demo = new Demo2(name)
}
demo
}
}
//测试类,重复打印五次获得的对象,看看对象地址是否一致
object Test{
def main(args:Array[String]):Unit={
for (i <- 0 to 5){
val demo = Demo.getDemo()
println(demo)
demo.info()
}
for (i <- 0 to 5){
val demo2 = Demo2.getDemo("korry")
println(demo2)
demo2.info()
}
}
}
本文介绍了Scala中如何实现单例模式,包括无参数和带参数的两种情况。无参数的单例模式通过定义一个Object对象来实现,而带参数的单例模式则在创建对象时传入参数。通过示例代码展示了如何在测试类中获取并打印单例对象,验证了对象的唯一性。
1292

被折叠的 条评论
为什么被折叠?



